home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-08-16 | 167.0 KB | 4,300 lines |
- 1
- -
- -
- -
- -
- -
- 0 NIH Extended WYLBUR
- 0 Internal Design
- 0 Specifications
- - October 1986
- -
- -
- -
- -
- - Computer Center
- 0 Division of Computer Research and Technology
- 0 National Institutes of Health
- -
- -
- -
- -
- 1 Table of Contents
- -
- Cataloged Procedures . . . . . . . . . . . . . . . . . 1
- 0Assembly Structure . . . . . . . . . . . . . . . . . . 6
- 0 Selecting Assembly Options . . . . . . . . . . . . 7
- 0COMMON Module Directory . . . . . . . . . . . . . . . 14
- 0COMMON Register Conventions . . . . . . . . . . . . . 15
- 0COMMON Control Block Directory . . . . . . . . . . . . 16
- 0MACRO Descriptions . . . . . . . . . . . . . . . . . . 17
- 0 Conventions . . . . . . . . . . . . . . . . . . . . 17
- 0 COMMON Macros . . . . . . . . . . . . . . . . . . . 20
- 0 APRIVSCN . . . . . . . . . . . . . . . . . . . . . 20
- APRIVSEG . . . . . . . . . . . . . . . . . . . . . 21
- 0 AREA, AREAORG and AREAEND . . . . . . . . . . . . 22
- 0 BLDLLIST . . . . . . . . . . . . . . . . . . . . . 24
- 0 CBDELINK . . . . . . . . . . . . . . . . . . . . . 25
- CBDLINKH . . . . . . . . . . . . . . . . . . . . . 27
- CBDLINKT . . . . . . . . . . . . . . . . . . . . . 29
- CBLINK . . . . . . . . . . . . . . . . . . . . . . 31
- CBLINKH . . . . . . . . . . . . . . . . . . . . . 33
- CBLINKT . . . . . . . . . . . . . . . . . . . . . 35
- CBINIT . . . . . . . . . . . . . . . . . . . . . . 37
- 0 CDESRCH . . . . . . . . . . . . . . . . . . . . . 38
- 0 CAMODE . . . . . . . . . . . . . . . . . . . . . . 39
- CBAL . . . . . . . . . . . . . . . . . . . . . . . 40
- CBALR . . . . . . . . . . . . . . . . . . . . . . 41
- CBASE . . . . . . . . . . . . . . . . . . . . . . 42
- CCALL . . . . . . . . . . . . . . . . . . . . . . 43
- CENTER . . . . . . . . . . . . . . . . . . . . . . 45
- CEXIT . . . . . . . . . . . . . . . . . . . . . . 46
- CPOP . . . . . . . . . . . . . . . . . . . . . . . 47
- CPOPREG . . . . . . . . . . . . . . . . . . . . . 48
- CPUSH . . . . . . . . . . . . . . . . . . . . . . 49
- CPUSHREG . . . . . . . . . . . . . . . . . . . . . 50
- CSA . . . . . . . . . . . . . . . . . . . . . . . 51
- CSAVGEN . . . . . . . . . . . . . . . . . . . . . 52
- CSAVLINK . . . . . . . . . . . . . . . . . . . . . 53
- CSETUP . . . . . . . . . . . . . . . . . . . . . . 54
- 0 CHKACCT . . . . . . . . . . . . . . . . . . . . . 55
- CHKBOX . . . . . . . . . . . . . . . . . . . . . . 56
- CHKINIT . . . . . . . . . . . . . . . . . . . . . 57
- CHKKW . . . . . . . . . . . . . . . . . . . . . . 58
- CHKTERM . . . . . . . . . . . . . . . . . . . . . 59
- 1 ii
- -
- CSPOST . . . . . . . . . . . . . . . . . . . . . . 60
- 0 CVBTD . . . . . . . . . . . . . . . . . . . . . . 61
- CVBTX . . . . . . . . . . . . . . . . . . . . . . 62
- CVBT$ . . . . . . . . . . . . . . . . . . . . . . 63
- CVDATE . . . . . . . . . . . . . . . . . . . . . . 64
- CVDTB . . . . . . . . . . . . . . . . . . . . . . 65
- CVTIME . . . . . . . . . . . . . . . . . . . . . . 66
- CVTIM128 . . . . . . . . . . . . . . . . . . . . . 67
- CVXTB . . . . . . . . . . . . . . . . . . . . . . 68
- 0 DALLIST . . . . . . . . . . . . . . . . . . . . . 69
- DALMSG . . . . . . . . . . . . . . . . . . . . . . 72
- 0 DCC . . . . . . . . . . . . . . . . . . . . . . . 74
- DEBLANK . . . . . . . . . . . . . . . . . . . . . 75
- DSC . . . . . . . . . . . . . . . . . . . . . . . 77
- 0 EDIT . . . . . . . . . . . . . . . . . . . . . . . 78
- 0 FASTPOST . . . . . . . . . . . . . . . . . . . . . 80
- FASTWAIT . . . . . . . . . . . . . . . . . . . . . 81
- 0 FLAGSEG . . . . . . . . . . . . . . . . . . . . . 82
- 0 FREESWAM . . . . . . . . . . . . . . . . . . . . . 83
- 0 GBLSET . . . . . . . . . . . . . . . . . . . . . . 84
- 0 IPRIVSCN . . . . . . . . . . . . . . . . . . . . . 85
- IPRIVSEG . . . . . . . . . . . . . . . . . . . . . 86
- 0 MCCW . . . . . . . . . . . . . . . . . . . . . . . 87
- 0 OPENP . . . . . . . . . . . . . . . . . . . . . . 88
- 0 ORGHIGH . . . . . . . . . . . . . . . . . . . . . 89
- 0 OSCALL . . . . . . . . . . . . . . . . . . . . . . 90
- OSENTER . . . . . . . . . . . . . . . . . . . . . 92
- OSEXIT . . . . . . . . . . . . . . . . . . . . . . 94
- OSSETUP . . . . . . . . . . . . . . . . . . . . . 96
- 0 SCABBR . . . . . . . . . . . . . . . . . . . . . . 98
- SCAN . . . . . . . . . . . . . . . . . . . . . . . 99
- SCBACK . . . . . . . . . . . . . . . . . . . . . . 102
- SCDONE . . . . . . . . . . . . . . . . . . . . . . 103
- SCDQUOTE . . . . . . . . . . . . . . . . . . . . . 104
- SCERROR . . . . . . . . . . . . . . . . . . . . . 105
- SCEXTRA . . . . . . . . . . . . . . . . . . . . . 107
- SCINIT . . . . . . . . . . . . . . . . . . . . . . 108
- SCKW . . . . . . . . . . . . . . . . . . . . . . . 109
- SCLAST . . . . . . . . . . . . . . . . . . . . . . 112
- SCPOP . . . . . . . . . . . . . . . . . . . . . . 113
- SCPUSH . . . . . . . . . . . . . . . . . . . . . . 114
- SCRTN . . . . . . . . . . . . . . . . . . . . . . 115
- 1 iii
- -
- SCSEMI . . . . . . . . . . . . . . . . . . . . . . 116
- SCTELL . . . . . . . . . . . . . . . . . . . . . . 117
- SCTYPE . . . . . . . . . . . . . . . . . . . . . . 118
- 0 SIM370 . . . . . . . . . . . . . . . . . . . . . . 119
- 0 STRIP . . . . . . . . . . . . . . . . . . . . . . 120
- 0 SYSBIT . . . . . . . . . . . . . . . . . . . . . . 122
- SYSCMP . . . . . . . . . . . . . . . . . . . . . . 123
- SYSKWT . . . . . . . . . . . . . . . . . . . . . . 124
- SYSLBL . . . . . . . . . . . . . . . . . . . . . . 125
- SYSLR . . . . . . . . . . . . . . . . . . . . . . 126
- SYSLST . . . . . . . . . . . . . . . . . . . . . . 128
- SYSLV . . . . . . . . . . . . . . . . . . . . . . 129
- SYSPRED . . . . . . . . . . . . . . . . . . . . . 130
- SYSQS . . . . . . . . . . . . . . . . . . . . . . 131
- SYSRNG . . . . . . . . . . . . . . . . . . . . . . 133
- SYSTANDB . . . . . . . . . . . . . . . . . . . . . 134
- 0 TIME128 . . . . . . . . . . . . . . . . . . . . . 136
- 0 TIOTSRCH . . . . . . . . . . . . . . . . . . . . . 137
- 0 UAOP . . . . . . . . . . . . . . . . . . . . . . . 138
- 0 VAREA . . . . . . . . . . . . . . . . . . . . . . 139
- VCLEAR . . . . . . . . . . . . . . . . . . . . . . 140
- VINIT . . . . . . . . . . . . . . . . . . . . . . 141
- VOUT . . . . . . . . . . . . . . . . . . . . . . . 143
- VSEG . . . . . . . . . . . . . . . . . . . . . . . 145
- VTELL . . . . . . . . . . . . . . . . . . . . . . 147
- VTEST . . . . . . . . . . . . . . . . . . . . . . 148
- 0 Extended Fixed Binary Facility . . . . . . . . . . 149
- 0 LOAD, STORE, ADD, SUB and CMP . . . . . . . . . 149
- 0 Extended Length Facility . . . . . . . . . . . . . 150
- 0 MCLC, MMVC, MNC, MOC and MXC . . . . . . . . . . 150
- MFC . . . . . . . . . . . . . . . . . . . . . . 151
- MTC . . . . . . . . . . . . . . . . . . . . . . 152
- MTR . . . . . . . . . . . . . . . . . . . . . . 153
- MTRT . . . . . . . . . . . . . . . . . . . . . . 154
- MZC . . . . . . . . . . . . . . . . . . . . . . 155
- 0 370 Simulation Macros . . . . . . . . . . . . . . 156
- 0 MCLCL, MMVCL, MNCL, MOCL and MXCL . . . . . . . 156
- MFCL . . . . . . . . . . . . . . . . . . . . . . 158
- MTCL . . . . . . . . . . . . . . . . . . . . . . 159
- MTRL . . . . . . . . . . . . . . . . . . . . . . 160
- MTRTL . . . . . . . . . . . . . . . . . . . . . 161
- MZCL . . . . . . . . . . . . . . . . . . . . . . 162
- 1 iv
- -
- Flag Setting and Testing Macros . . . . . . . . . 163
- 0 DF . . . . . . . . . . . . . . . . . . . . . . . 163
- SF . . . . . . . . . . . . . . . . . . . . . . . 164
- TF . . . . . . . . . . . . . . . . . . . . . . . 165
- ZF . . . . . . . . . . . . . . . . . . . . . . . 166
- 0 Multiprocessor Instructions . . . . . . . . . . . 167
- 0 MPNI . . . . . . . . . . . . . . . . . . . . . . 167
- MPOI . . . . . . . . . . . . . . . . . . . . . . 168
- MPXI . . . . . . . . . . . . . . . . . . . . . . 169
- MPZI . . . . . . . . . . . . . . . . . . . . . . 170
- 0 ALP Readability Macros . . . . . . . . . . . . . . 171
- 0 Chart . . . . . . . . . . . . . . . . . . . . . 171
- EXI and EXORG . . . . . . . . . . . . . . . . . 173
- 0 Extended Branch Mnemonics . . . . . . . . . . . . 175
- 0ED Routine Macros . . . . . . . . . . . . . . . . . . 176
- 0 EDABEND . . . . . . . . . . . . . . . . . . . . . 176
- EDENTER . . . . . . . . . . . . . . . . . . . . . 177
- EDEXIT . . . . . . . . . . . . . . . . . . . . . . 178
- EDGAS . . . . . . . . . . . . . . . . . . . . . . 179
- EDGCLS . . . . . . . . . . . . . . . . . . . . . . 180
- EDGMLS . . . . . . . . . . . . . . . . . . . . . . 181
- EDSCLS . . . . . . . . . . . . . . . . . . . . . . 182
- EDSETUP . . . . . . . . . . . . . . . . . . . . . 183
- 1 1
- -
- Cataloged Procedures
- -
- A number of special cataloged procedures are available and
- are summarized below.
- 0 "xxx" is "WYL" for WYLBUR
- "MIL" for MILTEN
- "MWC" for COMMON
- 0The following chart summarizes the compilation procedures.
- -Procedure MODULE Store Pass Asm Listing
- Name Parm ALP Assemble Object Object on Fiche
- +____ ____ ___ ________ ______ ______ ________
- 0xxxALC X X X X
- 0xxxALCF X X X X X
- 0xxxALCL X X
- 0xxxALCLF X X X X
- 0xxxALP X
- 0xxxALPC X X X X X
- 0xxxALPCF X X X X X X
- 0xxxALPCL X X X
- 0xxxAPCLF X X X X X
- 0For xxxALPC and xxxALPCL, the assembly listing is normally
- suppressed. Specify "ASMLIST=" on the EXEC card to get it
- on paper.
- 0The stepname for the compilation procedures is COMP.
- 0Module names must be the same as the deck name (on the TITLE
- card). WYLBUR module names start with W, MILTEN module
- names with M. COMMON modules may have any name not starting
- with M or W (but preferably C).
- 0The JCL for a compilation is
- 0 //xxxmmmm JOB (ZZXZ,...),'system: mmmm'
- /*RERUN
- /*CNTL MILWYL
- //PROCLIB DD DSN=ZZXZxxx.PROCLIB.os,
- // UNIT=FILE,VOL=SER=NIHLB1,DISP=SHR
- // EXEC procedure,MODULE=mmmm,OS=os,VERSION=vvv,GROUP=g,ID=iii
- //SYSIN DD *
- (program)
- 1 2
- -
- where "mmmm" is the module name
- 0 "system" is WYLBUR, MILTEN or COMMON
- 0 "vvv" is the version (default is STD)
- 0 "os" is MVS or XA (only for operating system dependent modules)
- 0 "g" is used to distinguish different groups of WYLBUR object
- modules. (GROUP=P is used for the production, non-trace
- object modules).
- 0 "iii" is an identifier used to distinguish different instances
- of the same module in special situations (not normally specified)
- 0To use Assembler FX for MVS instead of Assembler H, specify
- MVSX instead of MVS on the PROCLIB card.
- -Legal version names are
- 0 STD standard (MILTEN)
- TSO TSO
- BAT batch
- TOY small MILTEN version
- 0The default is STD.
- 0The following symbolic parameters are used to select special macro
- libraries:
- 0zMACID=iii ID for alternate WYLBUR, MILTEN or COMMON macro
- library; "z" is W, M, or C, respectively.
- 0zOPTID=iii ID for alternate WYLBUR, MILTEN or COMMON option
- library for version specified (xxxOPTS.vvv);
- "z" is W, M, or C, respectively.
- 0WOPTGID=iii ID for alternate WYLBUR group option library.
- 0zOPTAID=iii ID for alternate WYLBUR, MILTEN or COMMON option
- library for all versions (xxxOPTS.ALL); "z" is
- W, M, or C, respectively.
- 0zPMAC=libname Name of private WYLBUR, MILTEN or COMMON macro
- library (e.g., EDSMACS for the Edit Format Utility);
- "z" is W, M, or C, respectively.
- 1 3
- -
- The xxxMLIB procedures are used to create macro libraries.
- Use the following JCL:
- 0 //xxxjjjjj JOB (ZZXZ,...),'system: libdesc'
- /*RERUN
- /*CNTL MILWYL,EXCLUSIVE
- //PROCLIB DD DSN=ZZXZxxx.PROCLIB.os,
- // UNIT=FILE,VOL=SER=NIHLB1,DISP=SHR
- // EXEC xxxMLIB,LIBRARY=libname,OS=os,VERSION=vvv,GROUP=g,ID=iii
- //SYSIN DD *
- (IEBUPTE ADD cards and assembler source statements)
- 0where "xxxjjjjj" is a descriptive job name
- 0 "libdesc" is a descriptive name
- 0 "libname" is the name of the macro library
- 0 "vvv" is the version
- 0 "g" is used to distinguish different groups of WYLBUR object
- modules. (GROUP=P is used for the production, non-trace
- object modules).
- 0 "iii" is an identifier as for the assembly procedures (not
- normally used)
- 0 "os" is MVS or XA (only for operating system dependent
- libraries)
- 0xxxMLIBA sends the macro definitions through ALP before
- creating the library. xxxMLIBF does the same and also puts
- the IEBUPDTE listing onto fiche.
- 0The following macro libraries exist and are shown in order
- of concatenation:
- 0xxx os libname.vvvg contents
- +___ __ ____________ ________
- 0WYL yes WYLOPTS.vvv WYLBUR assembly parameter options for a
- particular version
- WYL no WYLOPTS.GRPg WYLBUR assembly parameter options for a
- group of object modules
- WYL no WYLOPTS.ALL WYLBUR assembly parameter options
- common to all versions
- WYL no WYLBUR WYLBUR macros
- MIL yes MILOPTS.vvv MILTEN assembly parameter options
- for a particular version
- MIL no MILOPTS.ALL MILTEN assembly parameter options
- common to all versions
- MIL no MILTEN MILTEN macros
- MWC yes MWCOPTS.vvv COMMON assembly parameter options
- for a particular version
- MWC no MWCOPTS.ALL COMMON assembly parameter options
- common to all versions
- MWC no COMMON COMMON macros
- 1 4
- -
- MWC no OS useful OS macros
- 0There is also a private macro library for the Edit Format Utility
- package:
- 0WYL no EDSMACS.STD macros used by the Edit Format
- Utility package
- 0SYS1.MACLIB and NIH.MACLIB are last in the concatenation.
- MVS DLIB macro libraries are included when MVS procedures
- are used.
- 1 5
- -
- Composite object decks and load modules are maintained with
- the following procedures (xxx is either WYL or MIL):
- 0Procedure Function
- +_________ ________
- 0xxxLPROD create production object deck and load
- module. Also create backup copy of
- previous object deck.
- xxxLBACK restore backup object deck to
- production
- xxxLSAVE create alternate backup copy of
- object deck
- xxxLREST restore from alternate backup
- xxxLEXP create experimental load module
- 0Symbolic parameters:
- 0Parameter Meaning
- +_________ _______
- 0OS=os operating system
- VERSION=vvv version (as for assembly and macro library
- procedures)
- GROUP=g which group of object and load modules
- is to be used (WYLBUR only)
- ID=iii identifier to distinguish instances of
- the same version in special situations
- (not normally used)
- mmmmID=iii Specifies the ID for an alternate object
- deck for module mmmm
- OPTIONS='string' linkage editor options (xxxLPROD and
- xxxLEXP)
- NAME=deck PROD or BACK, specifies whether
- production or backup deck is to be
- copied by xxxLSAVE
- BACK=NO specifies that xxxLPROD is not to copy the
- current production to backup.
- 0WYLLPROD and WYLLEXP have the following SYSIN data sets:
- 0DDname Input
- +______ _____
- 0UPDATE.SYSIN SCCUPDTE control cards indicating modules to be
- (or SYSIN) replaced
- 0The procedure WYLLTSO is used to copy the production TSO
- version into the command library.
- 0If a program is to be linked-edited into SYS1.VSYSTEMS (a linklist
- data set) after compilation, the xxxLUTIL procedures will do that.
- Simply place the following JCL statement after the program:
- 0 // EXEC xxxLUTIL,PROGRAM=xxxname
- 0where "xxxname" is the member name for the program.
- 1 6
- -
- Assembly Structure
- -
- The basic format for a WYLBUR, MILTEN or COMMON source
- deck is
- 0 mmmm: TITLE 'description of module';
- (macro definitions, if any)
- SUBTITLE 'zSETUP',
- COPY CPARMGBL;
- COPY MPARMGBL; (MILTEN & WYLBUR only)
- COPY WPARMGBL; (WYLBUR only)
- mmmm: zSETUP ...;
- (additional register definitions)
- SUBTITLE 'description of code section';
- (source program)
- END;
- 0where "mmmm" is the module name (must be the same as on the
- EXEC card); "z" is W for WYLBUR; M for MILTEN; C for
- COMMON.
- 1 7
- -
- Selecting Assembly Options
- -Assembly options for MILTEN, WYLBUR and common modules are selected by
- storing members into various "option libraries" which are small macro
- libraries that exist solely to hold copy modules that select assembly
- options.
- 0Copy Module Option Library Purpose
- +___________ ______________ _______
- 0CPARMALL MWCOPTS.ALL Contains SETx statements for
- common assembly parameters that
- are the same for all versions.
- 0CPARMVER MWCOPTS.version Contains SETx statements for
- (varies according common assembly parameters that
- to VERSION and OS are different for different
- symbolic parameters) versions.
- 0MPARMALL MILOPTS.ALL Contains SETx statements for
- MILTEN assembly parameters that
- are the same for all versions.
- 0MPARMVER MILOPTS.version Contains SETx statements for
- (varies according MILTEN assembly parameters that
- to VERSION and OS are different for different
- symbolic parameters) versions.
- 0WPARMALL WYLOPTS.ALL Contains SETx statements for
- WYLBUR assembly parameters that
- are the same for all versions
- and groups.
- 0WPARMGRP WYLOPTS.GRPgroup Contains SETx statements for WYLBUR
- (varies according assembly parameters that are
- to GROUP symbolic different for different groups.
- parameter)
- 0WPARMVER WYLOPTS.version Contains SETx statements for
- (varies according WYLBUR assembly parameters that
- to VERSION and OS are different for different
- symbolic parameters) versions.
- 0WDEVALL WYLOPTS.ALL Contains DEVICE macro calls to
- define DASD devices that are
- supported by all WYLBUR versions
- and groups.
- 1 8
- -
- Copy Module Option Library Purpose
- +___________ ______________ _______
- 0WDEVGRP WYLOPTS.GRPgroup Contains DEVICE macro calls to
- (varies according define additional DASD devices
- to GROUP symbolic that are supported only by some
- parameter) WYLBUR groups.
- 0WDEVVER WYLOPTS.version Contains DEVICE macro calls to
- (varies according define additional DASD devices
- to VERSION and OS that are supported only by some
- symbolic parameters) WYLBUR versions.
- 0WCLASALL WYLOPTS.ALL Contains VOLCLASS macro calls to
- define volume classes that are
- available in all WYLBUR versions
- and groups.
- 0WCLASGRP WYLOPTS.GRPgroup Contains VOLCLASS macro calls
- (varies according to define additional volume
- to GROUP symbolic classes that are available only
- parameter) in some WYLBUR groups.
- 0WCLASVER WYLOPTS.version Contains VOLCLASS macro calls to
- (varies according define additional volume classes
- to VERSION and OS that are available only in some
- symbolic parameters) WYLBUR versions.
- 0WVOLALL WYLOPTS.ALL Contains VOLUME macro calls to
- define volumes that are available
- from all WYLBUR versions and
- groups.
- 0WVOLGRP WYLOPTS.GRPgroup Contains VOLUME macro calls to
- (varies according define volumes that are available
- to GROUP symbolic only in certain WYLBUR groups.
- parameter)
- 0WVOLVER WYLOPTS.version Contains VOLUME macro calls to
- (varies according define volumes that are available
- to VERSION and OS only in certain versions of
- symbolic parameters) WYLBUR.
- 0WUNITALL WYLOPTS.ALL Contains UNIT macro calls to
- define unit names for all WYLBUR
- versions and groups.
- 1 9
- -
- Copy Module Option Library Purpose
- +___________ ______________ _______
- -WUNITGRP WYLOPTS.GRPgroup Contains UNIT macro calls to
- (varies according define unit names that are
- to GROUP symbolic available only in certain
- parameter) WYLBUR groups.
- 0WUNITVER WYLOPTS.version Contains UNIT macro calls to
- (varies according define unit names that are
- to VERSION and OS available only in certain
- symbolic parameters) versions of WYLBUR.
- 1 10
- -
- Common Assembly Parameters -- used by both MILTEN and WYLBUR
- 0* denotes parameters that are normally changed by an installation
- - Other
- Parameter Type Default Values Definition
- + _________ ____ _______ ______ __________
- 0 &CPU SETC '370BS' '360', '370' Type of CPU; if 360 is
- specified, the 370
- instruction set is not
- used; if 370BS is specified,
- 370 Branch and Save
- instructions are used
- (required for XA
- operating system)
- &MP SETC 'YES' 'NO' Multiprocessor option
- * &OS SETC 'MVS' 'MVT','MFT' Operating System
- * &JES SETC 'NIHJES2A' 'NIHHASP3' Name of Job Entry
- Subsystem interface used
- * &LJOBNUM SETA 4 1 to 8 Maximum length of job
- number for batch jobs
- * &MJOBNUM SETA 9999 1 to 99999999 Maximum job number
- &MSGCLAS SETC 'A' A-Z, 0-9 Default MSGCLASS for internal
- reader
- &MREMOTE SETA 999 1 to 99999999 Maximum RJE remote number
- &LJESCMD SETA 132 1 to 255 Maximum length of a JES
- command
- &LJESMSG SETA 106 1 to 255 Max length of notify message
- for JES
- &JESCHAR SETC '$' any character Job Entry Subsystem
- command character
- &DBC SETC 'NO' 'YES' Is DBC (Debugging
- Controller) in use?
- &DBCSP SETA 2 1 to 127 Storage subpool to be
- used by DBC.
- * &SITE SETC 'NIH' Site of installation. If
- this is NIH, code is
- generated to support
- special NIH functions.
- * &SITENAM(1) SETC 'NIH/DCRT' Full installation name, is
- * &SITENAM(2) SETC '/CCB' displayed to user at logon
- * &SITENAM(3) SETC ' WYLBUR' (maximum of 8 elements).
- * &FORHELP(1) SETC 'SEE THE' Text added to message to
- * &FORHELP(2) SETC 'PAL UNIT' direct user to source for
- help. Used by FORHELP
- macro (maximum of 8
- elements).
- * &LINIT SETA 3 0 to 8 Length of user initials
- (0 means not used)
- * &LACCT SETC 4 0 to 8 Length of user account
- number (0 means not used)
- * &LKW SETA 3 0 to 8 Length of user keyword
- (0 means not used)
- 1 11
- -
- Other
- Parameter Type Default Values Definition
- + _________ ____ _______ ______ __________
- 0* <ERM SETA 4 0 to 8 Length of terminal
- identifier (0 means not
- used)
- * &LBOX SETA 4 0 to 8 Length of box
- identification
- (0 means not used)
- * &INITNAM SETC 'INITIALS' Name displayed to users
- when prompting for
- initials
- * &ACCTNAM SETC 'ACCOUNT' Name displayed to users
- when prompting for
- account
- * &KWNAME SETC 'KEYWORD' Name displayed to users
- when prompting for keyword
- * &TERMNAM SETC 'TERMINAL' Name displayed to users
- when prompting for
- terminal
- * &BOXNAME SETC 'BOX' Name displayed to users
- when prompting for box
- number
- * &RACF SETC 'NO' 'YES' RACF support
- * &RACFID SETC 'USERID' 1 - 8 Name of RACF user id
- characters
- &RACFSP SETA 3 0 to 127 Storage subpool to be
- used by RACF
- * &SVCGEN1 SETA 251 0 to 255 General purpose Type 1 SVC
- number used by WYLBUR and
- MILTEN (MVT only)
- * &SVCGEN2 SETA 244 0 to 255 General purpose Type 2 SVC
- number used by WYLBUR and
- MILTEN (MVT only)
- * &SVCJES SETA 254 0 to 255 SVC number used for the
- HASP communication (MVS
- only)
- * &SVCKW SETA 254 0 to 255 SVC number used for
- communication with the
- Keyword subsystem
- * &SVCACCT SETA 242 0 to 255 SVC number used to
- communicate with the
- installation accounting
- routines.
- &VAREA SETA 36 Length of work area used
- by the VINIT, VSEG, etc.,
- macros.
- &LSCAN SETA 16 >= 16 Length to which tokens are
- padded with blanks in the
- scanner.
- &LNDP SETC '3' 0 to 8 Number of decimal places
- in a WYLBUR line number.
- 1 12
- -
- Other
- Parameter Type Default Values Definition
- + _________ ____ _______ ______ __________
- 0 &LNIP SETC '5' 0 to 8 Number of integer
- positions in a WYLBUR line
- number. &LNIP+&LNDP must
- be less than 9.
- &LNMIN SETA 0 Minimum line number
- allowed (always zero).
- &LNMAX SETA 99999999 Maximum line number
- allowed (computed from
- &LNDP and &LNIP).
- &LN1 SETA 1000 Line number 1 (computed
- from &LNDP and &LNIP).
- &LNMASK SETA X'7FFFFFF' Line number mask (computed
- from &LNDP and &LNIP).
- &LNBITS SETA 27 Number of bits in the line
- number (computed from
- &LNDP and &LNIP).
- &LNMAXZ SETC '00000000' 1&LNMAXZ=max line number+1
- (computed from &LNDP and
- &LNIP).
- &SIM370 SETC 'SIM370' Work area for 360
- simulation instructions.
- Set by SIM370, MSETUP, and
- WSETUP macros.
- &TIME128 SETA 128*24*3600*100 128 days in 100ths of a
- second.
- * &WTOMAX SETA 62 9 to 254 Maximum length of text for
- a WTO.
- &WTOMC SETA 1 WTO ROUTECDE -- Master
- Console
- &WTOMCI SETA 2 WTO ROUTECDE -- Master
- Informational Console
- &WTOTAPE SETA 3 WTO ROUTECDE -- Tape Pool
- &WTODISK SETA 4 WTO ROUTECDE -- Disk Pool
- &WTOTLIB SETA 5 WTO ROUTECDE -- Tape
- Library
- &WTODLIB SETA 6 WTO ROUTECDE -- Disk
- Library
- &WTOUREC SETA 7 WTO ROUTECDE -- Unit
- Record Pool
- &WTOTPC SETA 8 WTO ROUTECDE --
- Teleprocessing Console
- &WTOSSEC SETA 9 WTO ROUTECDE -- System
- Security Console
- &WTOERR SETA 10 WTO ROUTECDE -- Error
- Logging Console
- &WTOPROG SETA 11 WTO ROUTECDE -- Programmer
- &WTOEMUL SETA 12 WTO ROUTECDE -- Emulation
- Console
- &WTOURC1 SETA 13 WTO ROUTECDE -- User Code 1
- &WTOURC2 SETA 14 WTO ROUTECDE -- User Code 2
- &WTOURC3 SETA 15 WTO ROUTECDE -- User Code 3
- &WTOFAIL SETA 1 WTO DESC -- System Failure
- 1 13
- -
- Other
- Parameter Type Default Values Definition
- + _________ ____ _______ ______ __________
- 0 &WTOIACT SETA 2 WTO DESC -- Immediate
- Action
- &WTOEACT SETA 3 WTO DESC -- Eventual Action
- &WTOSTAT SETA 4 WTO DESC -- System Status
- &WTOCMDR SETA 5 WTO DESC -- Command
- Response
- &WTOJOB SETA 6 WTO DESC -- Job Status
- &WTOAPPL SETA 7 WTO DESC -- Application
- Program
- &WTOOUTL SETA 8 WTO DESC -- Out-of-line
- Message
- &WTODISP SETA 9 WTO DESC -- Dynamic Status
- Displays
- &WTOCRIT SETA 10 WTO DESC -- Critical
- Eventual Action
- &TEMP SETA 0 Work variable
- 1 14
- -
- COMMON Module Directory
- -
- Module Function
- +______ ________
- 0ALP ALP preprocessor (PL/I)
- POSTALP ALP postprocessor (PL/I)
- ALPCG program to call ALP, Assembler G, and POSTALP
- ALPCH program to call ALP, Assembler H, and POSTALP
- ALPCX program to call ALP, Assembler FX, and POSTALP
- CABB abbreviation table used by program that
- processes the Reference Handbooks
- CSCN scanner
- CUTR utility routines
- HIST produces histograms of counter values (used by
- software monitors) (PL/I)
- SAER scratch-allocate-rlse-eof utility
- SCRM data scrambling subroutines
- SVCG general purpose SVC (MVT/MFT only)
- 1 15
- -
- COMMON Register Definitions
- -
- Reg Name Function Disposition
- +___ ____ ________ ___________
- 0 0 VR0 parameter passing volatile
- 1 VR1 parameter passing volatile
- 2 XRA work reg preserved
- 3 XRB work reg preserved
- 4 XRC work reg preserved
- 5 XRD work reg preserved
- 6 XRE work reg preserved
- 7 XRF work reg preserved
- 8 XRG work reg preserved
- 9 RTNR return address volatile
- 10 BASER base register preserved
- 11 WAR work area pointer preserved
- 12 GCBR reserved for a sacred
- pointer to a
- global control
- block preserved
- 13 STKR stack pointer sacred
- 14 VRE parameter passing volatile
- 15 VRF parameter passing volatile
- 0 2 LOWR Standard low register for CENTER
- 11 HIGHR Standard high register for CENTER
- 1 16
- -
- COMMON Control Block Directory
- -
- Id Name Description
- +__ ____ ___________
- 0KWR Keyword Record Parameter list for
- keyword SVC
- 0MDC Machine Dependent EQUs for low-core
- Cells cells, etc.
- 0NAT Nucleus Address Table Table of useful addresses
- in the MVT nucleus
- 0SCT Scanner Control Table Control info for scanner
- -OS control blocks available via CSETUP: CDE, CVT, DCB, DEB,
- DECB, IQE, LLE, PQE, RB, TCB, UCB.
- 0MVS control blocks available via CSETUP: ACB, ASCB, ASXB,
- JESCT, LRC, PCCA, PSA, RPL, SDWA, SMCA, SSOB, S99 (SVC 99
- definitions), TQE
- 0Other OS control blocks available: IECSDSL1 (DSCB),
- IEFJFCBN (JFCB).
- 1 17
- -
- MACRO Descriptions
- -
- 0 Conventions
- -
- 0Macro operands are frequently described in the following
- terms:
- 0 addrla - denotes an expression which will be used in
- a load address instruction
- 0 addrl - denotes an address which will be used in a
- load instruction
- 0 addrlh - denotes an address which will be used in a
- load halfword instruction.
- 0 valuela - denotes a value that will be used in a load
- address instruction.
- 0 cexpr8 - denote expressions which evaluate to a
- cexpr12 constant to be held in the indicated
- cexpr16 number of bits
- cexpr24
- cexpr32
- 0 relexpra - denotes a relocatable expression that is
- valid in an A-Type address constant
- 0 relexpri - denotes a relocatable expression that is
- valid as a storage address in an instruction
- 0 string - denotes a quoted string
- 0 symbol - any symbol that may be used in the label
- field of an instruction.
- 0 vsymbol - symbol that may be used in a V-Type address
- constant
- 0 reg - any register
- 0 preg - any register except VR0
- 0Valuela, addrla, addrl, and addrlh indicate the default
- method the macro will use for loading the parameter
- registers (LA, LA, L and LH respectively). If the default
- is not satisfactory, the user can specify alternate methods
- for having the parameter registers loaded. An example:
- 0 CVBTD P1-addrla,P2-valuela,P3-addrl
- 1 18
- -
- This macro takes a binary number (specified in the third
- operand), converts it to EBCDIC and stores the result in the
- location pointed to by the first operand. The second
- operand specifies a length for the destination field, zero
- implying no fixed length.
- 0Normal expansion for the macro is as follows:
- 0 LA VR0,P2 length
- LA VR1,P1
- L VRF,P3
- WCALL CVBTD
- 0Alternate ways of expressing the operands of the form addrx
- and valuela are:
- 0 (register) (contains the actual value to be used)
- LH:operand
- L:operand
- LA:operand
- LOADx:operand (x stands for H, LH, B, P, F, LF)
- 0For example, if XRJOB contained a job number and fullword
- JSPTR contained a pointer to an area to hold the EBCDIC job
- number, the macro could be coded
- 0 CVBTD L:JSPTR,3,(XRJOB)
- 0which would generate
- 0 LA VR0,3
- L VR1,JSPTR
- LR VRF,XRJOB
- WCALL CVBTD
- 0Several points bear special mention.
- 01. If you want to point to a literal, the notation L:=F'1'
- will not work since the assembler interprets the equal
- sign as an indication of a keyword parameter. Instead
- code L::F'1' and the macro will do the right thing.
- 02. When coding register notation for the parameter passing
- registers, e.g. CVBTD SLOT,,(VRF), be sure to code the
- registers VR0, VR1, VRE, VRF verbatim so that the macro
- can avoid generation of instructions like
- 0 LR VR0,0
- 03. A value or address of zero always causes generation of
- an SR instruction to clear the parameter register,
- regardless of what type of loading was requested.
- 04. When a macro returns a parameter in VRF, the condition
- code will also be set using an LTR VRF,VRF.
- 1 19
- -
- 5. Some macros that provide parameters of the form
- KEYWORD=OPTION also allow a conditional test to be made.
- The general form is KEYWORD=(OPTION,OP,OPND1,OPND2,CC)
- where
- 0 "OP" is an instruction opcode which sets a condition code
- (e.g., TM, LTR, CLI)
- "OPND1" is the first operand for the instruction
- "OPND2" is the second operand for the instruction
- "CC" is the condition code for which KEYWORD=OPTION
- is to be effective
- 0 An example:
- 0 TREAD QM=(NO,TM,OPTFL,OPTFQM,Z)
- 0 means that QM=NO is valid only if a TM OPTFL,OPTFQM
- results in a Z (zero) condition code.
- 0 This is referred to as the conditional form of the
- parameter.
- 1 20
- -
- COMMON, MILTEN and WYLBUR Macros
- -
- APRIVSCN - Scan for account privilege
- -
- 0APRIVSCN scans for account privileges and sets corresponding
- bits in a specified byte.
- -
- <symbol> APRIVSCN byte<,TYPE=NO>
- -
- byte relexpri
- 0 Address of the byte in which the bits are to be set.
- Bits are defined for KWRAFL.
- - TYPE=NO
- 0 Causes "NO" to be appended in front of each word to
- be scanned for. Also causes bits to be turned off
- instead of on in the byte.
- 1 21
- -
- APRIVSEG - TSEG or VSEG account privileges
- -
- 0APRIVSEG is used to TSEG or VSEG proper words for each
- account privilege (KWRAFL) bit set in a specified byte.
- -
- <symbol> APRIVSEG byte<,AFTER=string><,BEFORE=string>
- <,VAREA=varea>
- -
- byte relexpri
- 0 Address of the flag byte.
- - AFTER=string string
- 0 A string of characters to be appended after each
- word. May also be specified as location and length.
- - BEFORE=string string
- 0 A string of characters to be appended before each
- word. May also be specified as location and length.
- - VAREA=varea addrla
- 0 Address of the VAREA if VSEG is to be used.
- 1 22
- -
- AREA, AREAORG and AREAEND - Define a structured storage area
- -
- 0AREA and AREAEND are used to define an area of storage which
- is structured into smaller named components. AREA begins
- the definition, DSs and DCs follow, and AREAEND terminates
- the definition.
- 0AREAORG is used to ORG back to the start of the area so that
- fields may be overlaid. The length of the area will be the
- maximum attained.
- -
- <symbol> AREA alignment<,DSECT=NO>
- -
- symbol symbol
- 0 The name of the total storage area. The length
- attribute will be correctly set.
- - alignment X,H,F,D,0X,0H,0F,0D
- 0 Specifies the boundary alignment for the area.
- Default is X (byte alignment).
- - DSECT=NO
- 0 Indicates that the area is not to be a DSECT.
- -
- <symbol> AREAEND <alignment>
- -
- symbol symbol
- 0 A symbol which is to be EQUed to the length of the
- area.
- 1 23
- -
- alignment X,H,F,D,0X,0H,0F,0D
- 0 Specifies the boundary alignment for the end of the
- area. Default is what was specified in the AREA
- macro.
- -
- <symbol> AREAORG <alignment>
- -
- symbol symbol
- 0 A symbol which is to be EQUed to the current length
- of the area.
- - alignment X,H,F,D,0X,0H,0F,0D
- 0 Specifies boundary alignment for the end of this
- overlay of the area. Default is what was specified
- in the AREA macro.
- -
- NOTE:
- 0 Area definitions may be nested. DSECT=NO is implied at
- the inner levels.
- -
- EXAMPLE:
- 0 WA AREA F
- WATEMP DS F
- WABYTE DS X
- WAHALF DS H
- WASIZE AREAEND
- 1 24
- -
- BLDLLIST - Construct BLDL list
- -
- 0BLDLLIST assembles a list in the proper format for the
- BLDL SVC.
- -
- <symbol> BLDLLIST label1,member1,...,labelN,memberN
- <,LENGTH=value>
- -
- labelI symbol
- 0 The label to be placed on the list entry for
- memberI.
- - memberI symbol
- 0 Name of the member to be searched for.
- - LENGTH=value previously defined absolute
- expression
- 0 The length of each entry in the list. Default
- is 58.
- 1 25
- -
- CBDELINK - Remove control block from linked list
- -
- 0CBDELINK is used to remove a control block from a linked
- list of similar control blocks.
- -
- <symbol> CBDELINK prev-reg,del-reg,work-reg,HEAD=loc,
- <TAIL=loc>,NEXT=dsect-loc
- <,BACK=dsect-loc>
- <,CB=dsect-name><,ZOT=YES>
- -
- prev-reg preg
- 0 Register must contain a pointer to the control block
- which immediately preceeds the one to be removed.
- Should contain zero if removing from the beginning
- of the list.
- - del-reg preg
- 0 Register must contain a pointer to the control block
- to be removed from the list.
- - work-reg preg
- 0 A work register.
- - HEAD=loc relexpri
- 0 Location of a word which contains a pointer to the
- first element in the list. Contains zero when the
- list is empty.
- - TAIL=loc relexpri
- 0 Location of a word which contains a pointer to the
- last element in the list. Contains zero when the
- list is empty.
- 1 26
- -
- NEXT=dsect-loc symbol
- 0 Name of the word defined in a DSECT for the control
- block which points to the next control block in the
- list. Contains zero for the last element in the
- list.
- - BACK=dsect-loc symbol
- 0 If present, indicates a doubly-linked list (forward
- and backward pointers). Name of the word defined in
- a DSECT for the control block which points to the
- preceeding control block in the list. Contains zero
- for the first element in the list.
- - CB=dsect-id symbol
- 0 The name of the DSECT for the control block. Omit
- if the control block is defined with EQUs instead of
- a DSECT.
- - ZOT=YES
- 0 Indicates that the NEXT and BACK fields in the
- control block being removed should be set to zero.
- 1 27
- -
- CBDLINKH - Remove control block from head of linked list
- -
- 0CBDLINKH is used to remove the first control block from a
- linked list of similar control blocks.
- -
- <symbol> CBDLINKH del-reg,work-reg,HEAD=loc,
- <,TAIL=loc>,NEXT=dsect-loc
- <,BACK=dsect-loc><,CB=dsect-name>
- <,ZOT=YES>
- -
- del-reg preg
- 0 Register must contain a pointer to the control block
- to be removed from the list.
- - work-reg preg
- 0 A work register.
- - HEAD=loc relexpri
- 0 Location of a word which contains a pointer to the
- first element in the list. Contains zero when the
- list is empty.
- - TAIL=loc relexpri
- 0 Location of a word which contains a pointer to the
- last element in the list. Contains zero when the
- list is empty.
- - NEXT=dsect-loc symbol
- 0 Name of the word defined in a DSECT for the control
- block which points to the next control block in the
- list. Contains zero for the last element in the
- list.
- 1 28
- -
- BACK=dsect-loc symbol
- 0 If present, indicates a doubly-linked list (forward
- and backward pointers). Name of the word defined in
- a DSECT for the control block which points to the
- preceeding control block in the list. Contains zero
- for the first element in the list.
- - CB=dsect-id symbol
- 0 The name of the DSECT for the control block. Omit
- if the control block is defined with EQUs instead of
- a DSECT.
- - ZOT=YES
- 0 Indicates that the NEXT and BACK fields in the
- control block being removed should be set to zero.
- 1 29
- -
- CBDLINKT - Remove control block from tail of linked list
- -
- 0CBDLINKT is used to remove the last control block in a
- linked list of similar control blocks.
- -
- <symbol> CBDLINKT prev-reg,<del-reg>,work-reg,HEAD=loc
- <,TAIL=loc>,NEXT=dsect-loc
- <,BACK=dsect-loc><,CB=dsect-name>
- <,ZOT=YES>
- -
- prev-reg preg
- 0 Register must contain a pointer to the control block
- which immediately preceeds the one to be removed.
- Should contain zero if removing from the beginning
- of the list.
- - del-reg preg
- 0 Register must contain a pointer to the control block
- to be removed from the list.
- Required only if ZOT=YES is specified.
- - HEAD=loc relexpri
- 0 Location of a word which contains a pointer to the
- first element in the list. Contains zero when the
- list is empty.
- - TAIL=loc relexpri
- 0 Location of a word which contains a pointer to the
- last element in the list. Contains zero when the
- list is empty.
- - NEXT=dsect-loc symbol
- 0 Name of the word defined in a DSECT for the control
- block which points to the next control block in the
- list. Contains zero for the last element in the
- list.
- 1 30
- -
- BACK=dsect-loc symbol
- 0 If present, indicates a doubly-linked list (forward
- and backward pointers). Name of the word defined in
- a DSECT for the control block which points to the
- preceeding control block in the list. Contains zero
- for the first element in the list.
- - CB=dsect-id symbol
- 0 The name of the DSECT for the control block. Omit
- if the control block is defined with EQUs instead of
- a DSECT.
- - ZOT=YES
- 0 Indicates that the NEXT and BACK fields in the
- control block being removed should be set to zero.
- 1 31
- -
- CBLINK - Add control block to linked list
- -
- 0CBLINK is used to add a control block anywhere in a linked
- list of similar control blocks.
- -
- <symbol> CBLINK after-reg,new-reg,work-reg,HEAD=loc,
- <TAIL=loc>,NEXT=dsect-loc,
- <,BACK=dsect-loc><,CB=dsect-id>
- -
- after-reg preg
- 0 Register containing a pointer to the control block
- after which the new control block is to be added.
- Should contain zero if the new control block is to
- be first in the list.
- - new-reg preg
- 0 Register must contain a pointer to the control block
- to be added.
- - work-reg preg
- 0 A work register.
- - HEAD=loc relexpri
- 0 Location of a word which contains a pointer to the
- first element in the list. Contains zero when the
- list is empty.
- - TAIL=loc relexpri
- 0 Location of a word which contains a pointer to the
- last element in the list. Contains zero when the
- list is empty.
- 1 32
- -
- NEXT=dsect-loc symbol
- 0 Name of the word defined in a DSECT for the control
- block which points to the next control block in the
- list. Contains zero for the last element in the
- list.
- - BACK=dsect-loc symbol
- 0 If present, indicates a doubly-linked list (forward
- and backward pointers). Name of the word defined in
- a DSECT for the control block which points to the
- preceeding control block in the list. Contains zero
- for the first element in the list.
- - CB=dsect-id symbol
- 0 The name of the DSECT for the control block. Omit
- if the control block is defined with EQUs instead of
- a DSECT.
- 1 33
- -
- CBLINKH - Add a control block at the head of a linked list
- -
- 0CBLINKH is used to add a control block at the start of a
- linked list of similar control blocks.
- -
- <symbol> CBLINKH new-reg,work-reg,HEAD=loc,<TAIL=loc>,
- NEXT=dsect-loc<,BACK=dsect-loc>
- <,CB=dsect-id>
- -
- new-reg preg
- 0 Register must contain a pointer to the control block
- to be added.
- - work-reg preg
- 0 A work register.
- - HEAD=loc relexpri
- 0 Location of a word which contains a pointer to the
- first element in the list. Contains zero when the
- list is empty.
- - TAIL=loc relexpri
- 0 Location of a word which contains a pointer to the
- last element in the list. Contains zero when the
- list is empty.
- - NEXT=dsect-loc symbol
- 0 Name of the word defined in a DSECT for the control
- block which points to the next control block which
- in the list. Contains zero for the last element in
- the list.
- 1 34
- -
- BACK=dsect-loc symbol
- 0 If present, indicates a doubly-linked list (forward
- and backward pointers). Name of the word defined in
- a DSECT for the control block which points to the
- preceeding control block in the list. Contains zero
- for the first element in the list.
- - CB=dsect-id symbol
- 0 The name of the DSECT for the control block. Omit
- if the control block is defined with EQUs instead of
- a DSECT.
- 1 35
- -
- CBLINKT - Add control block at the tail of a linked list
- -
- 0CBLINKT is used to add a control block at the end of a
- linked list of similar control blocks.
- -
- <symbol> CBLINKT new-reg,work-reg,HEAD=loc,<TAIL=loc>,
- NEXT=dsect-loc<,BACK=dsect-loc>
- <,CB=dsect-id>
- -
- new-reg preg
- 0 Register must contain a pointer to the control block
- to be added.
- - work-reg preg
- 0 A work register.
- - HEAD=loc relexpri
- 0 Location of a word which contains a pointer to the
- first element in the list. Contains zero when the
- list is empty.
- - TAIL=loc relexpri
- 0 Location of a word which contains a pointer to the
- last element in the list Contains zero when the
- list is empty.
- - NEXT=dsect-loc symbol
- 0 Name of the word defined in a DSECT for the control
- block which points to the next control block in the
- list. Contains zero for the last element in the
- list.
- 1 36
- -
- BACK=dsect-loc symbol
- 0 If present, indicates a doubly-linked list (forward
- and backward pointers). Name of the word defined in
- a DSECT for the control block which points to the
- preceeding control block in the list. Contains zero
- for the first element in the list.
- - CB=dsect-id symbol
- 0 The name of the DSECT for the control block. Omit
- if the control block is defined with EQUs instead of
- a DSECT.
- 1 37
- -
- CBINIT - Initialize control block
- -
- 0CBINIT is used to initialize an area of storage with
- constant data.
- -
- <symbol> CBINIT BEGIN,location<,length><,ALIGN=boundary>
- (constant data)
- <symbol> CBINIT END
- -
- location relexpri (maximum length of 8
- characters)
- 0 Address of the area to be initialized.
- - length symbol
- 0 A symbol to be EQUed to the length of the constant
- data.
- - ALIGN=boundary X, H, F or D
- 0 Boundary alignment for the constant data. Default
- is F.
- -
- NOTE:
- 0 The constant data is placed between the CBINIT BEGIN and
- the CBINIT END.
- 1 38
- -
- CDESRCH - Search CDEs for module name corresponding to address
- -
- 0CDESRCH takes an address and searches the CDE chains to find
- in which module the address falls.
- -
- <symbol> CDESRCH address<,WORK=area>
- - address addrl (passed in VRF)
- 0 Address for which the corresponding module name is
- desired.
- - WORK=area addrla
- 0 Address of a 12-byte work area.
- -RETURNS:
- 0 VR1 = address of the module name (zero if none found)
- 0 VRF = offset from the load point of the module
- 0 VRE = load point of the module
- 0 VR0 = segment number for scatter loaded modules
- 0 An LTR VR1,VR1 is done
- 1 39
- -
- CAMODE - Set Addressing Mode
- -
- 0CAMODE is used under MVS/XA to set 24 or 31 bit addressing mode.
- -<symbol> CAMODE mode,<REG=workreg>
- -
- mode 24 or 31
- 0 The addressing mode to be set.
- - REG=workreg preg
- 0 A register to be used as a work register. The default
- is RTNR.
- 1 40
- -
- CBAL - Branch and Link
- -
- 0CBAL branches and links to a subroutine. It generates a BAL
- or BAS instruction depending on the value of &CPU.
- -<symbol> CBAL reg,addr
- -
- reg preg
- 0 Register in which the return address is saved.
- - addr relexpri
- 0 Address of the subroutine.
- 1 41
- -
- CBALR - Branch and Link (Register)
- -
- 0CBALR branches and links to a subroutine. It generates a BALR
- or BASR instruction, depending on the value of &CPU.
- -<symbol> CBALR reg1,reg2
- - reg1 preg
- 0 Register in which the return address is to be saved.
- - reg2 preg
- 0 Register containing the address of the subroutine.
- 1 42
- -
- CBASE - Load base register
- -
- 0CBASE is used to load a base register with the current
- instruction address. It generates a BALR or BASR instruction,
- depending on the value of &CPU.
- -<symbol> CBASE basereg
- -
- basereg preg
- 0 Register to receive the instruction address.
- -NOTE:
- 0 CBASE is normally followed by a USING. For example,
- 0 CBASE BASER
- USING *,BASER
- 1 43
- -
- CCALL - Pass control to a subroutine
- -
- 0The CCALL macro will pass control to a specified subroutine
- using COMMON linkage convertions.
- -<symbol> CCALL routine<,A><,RETURN=NO><,TEST=YES><,VRE=vre>
- <,VRF=vrf><,VR0=vr0><,VR1=vr1>
- -
- routine relexpra or vsymbol or (preg)
- 0 Address of subroutine to be called.
- - A
- 0 The address of the routine is specified as a
- relexpra.
- - RETURN=NO
- 0 Ignored, provided for compatibility with WCALL.
- - TEST=YES
- 0 Causes the call to be bypassed if the routine
- address is zero.
- - VRE=vre addrla (passed in VRE)
- 0 Parameter to be passed in VRE.
- - VRF=vrf addrla (passed in VRF)
- 0 Parameter to be passed in VRF.
- - VR0=vr0 addrla (passed in VR0)
- 0 Parameter to be passed in VR0.
- 1 44
- -
- VR1=vr1 addrla (passed in VR1)
- 0 Parameter to be passed in VR1.
- 1 45
- -
- CENTER - Generate entry linkage
- -
- 0The CENTER macro will generate proper COMMON entry linkage
- code.
- -
- <symbol> CENTER <reg1,reg2><,size><,ENTRY=NO><,BASE=NO>
- <,WAR=NO>
- -
- reg1,reg2 regs
- 0 The registers to be saved, specified for an STM
- instruction.
- - size cexpr12
- 0 The size of the requested stack area.
- - ENTRY=NO
- 0 Requests that an entry point not be generated.
- - BASE=NO
- 0 Requests that the base register not be loaded.
- - WAR=NO
- 0 Requests that the work area register not be loaded.
- 1 46
- -
- CEXIT - Generate COMMON exit linkage
- -
- 0The CEXIT macro generates COMMON exit linkage code
- -
- <symbol> CEXIT <reg1,reg2><,size><,WAR=NO><,LTR=reg>
- <,BRANCH=NO>
- -
- reg1,reg2 registers
- 0 The registers to be restored, specified for a LM
- instruction.
- - size cexpr12
- 0 The size of the stack area to be released.
- - WAR=NO
- 0 The work area register was not loaded at entry.
- - LTR=reg VR0,VR1,VRE or VRF
- 0 An LTR reg,reg should be generated to set the
- condition code.
- - BRANCH=NO
- 0 Specifies that the branch to the return address is
- not to be generated.
- 1 47
- -
- CPOP - Release COMMON stack space
- -
- 0The CPOP macro will release COMMON stack space.
- -
- <symbol> CPOP register<,EXTRA=value>
- or
- <symbol> CPOP ,size<,EXTRA=value>
- -
- register reg
- 0 The address of the beginning to the stack area to be
- released.
- - size cexpr12 or (reg)
- 0 Size in bytes of the stack area to be released.
- - EXTRA=value cexpr12
- 0 Number of bytes to be released in addition to the
- value specified in the size parameter.
- 1 48
- -
- CPOPREG - Restore registers from stack
- -
- 0CPOPREG restores registers that were previously saved in the
- stack by CPUSHREG.
- -
- <symbol> CPOPREG r1<,r2>
- -
- r1 reg
- 0 Specifies the starting register.
- - r2 reg
- 0 Specifies the ending register.
- -
- NOTE:
- 0 The registers may wrap, as in a LM instruction.
- 1 49
- -
- CPUSH - Acquire stack space
- -
- 0The CPUSH macro will allocate the specified amount of stack
- space to the user.
- -
- <symbol> CPUSH reg,size<,EXTRA=value>
- -
- reg reg
- 0 The register to contain the address of the beginning
- of the acquired stack area.
- - size cexpr12 or (preg)
- 0 The size in bytes of the stack area requested.
- - EXTRA=value cexpr12
- 0 The number of bytes of stack space requested in
- addition to the amount specified in the size
- parameter.
- 1 50
- -
- CPUSHREG - Save registers in stack
- -
- 0CPUSHREG stores registers into the stack and bumps the stack
- pointer accordingly.
- -
- <symbol> CPUSHREG r1,<r2>
- -
- r1 reg
- 0 Specifies the starting register.
- - r2 reg
- 0 Specifies the ending register.
- -
- NOTE:
- 0 The registers may wrap, as in a STM instruction.
- 1 51
- -
- CSA - Define save area space
- -
- 0The CSA macro will define enough fullwords of storage to
- save the specified registers.
- -
- <symbol> CSA reg1,reg2<,EQU=(sym1,reg1,...,symN,regN)
- -
- reg1,reg2 regs
- 0 Registers to be saved in STM form.
- - symI symbol
- 0 Specifies a symbol to be EQUed to the word in which
- register regI will be saved.
- - regI reg
- 0 Specifies the register for symI.
- -
- NOTE:
- 0 The normal format for a work area DSECT is
- 0 name DSECT
- CSA reg1,reg2
- (definitions for work space)
- size EQU *-name
- 1 52
- -
- CSAVGEN - Generate OS Save Area Linkage
- -
- 0CSAVGEN is used to generate instructions to create standard OS save
- area linkage from the stack to an OS save area.
- 0The location of the OS save area must previously have been specified
- via CSAVLINK. CSAVGEN is used by CENTER, CCALL, CPUSH, CPOP, etc.,
- but may also be used by itself.
- -
- <symbol> CSAVGEN
- 1 53
- -
- CSAVLINK - Request OS Save Area Linkage
- -
- CSAVLINK is used to request that standard OS save area linkage be
- maintained in the stack. It causes additional code to be generated
- by macros such as CENTER, CCALL, CPUSH, CPOP, etc.
- -
- <symbol> CSAVLINK <savepointer>
- -
- savepointer addrl
- 0 The address of the OS save area to which linkage is to be
- maintained. If omitted, generation of additional linkage
- code is suppressed.
- 1 54
- -
- CSETUP - Define control blocks
- -
- -The CSETUP macro defines the control blocks specified by the
- macro.
- -
- <symbol> CSETUP <REGS=NO><,CBS=option><,SCABBRS=NO>
- <SETS=NO>,<SYMDEL=NO>,<,cntl-block=YES>
- -
- symbol 1-8 characters (required)
- 0 CSECT name for the module.
- - REGS=NO
- 0 Don't define the standard registers.
- - CBS=option NO or ALL
- 0 NO specifies that no control block DSECTS are to be
- generated, ALL specifies that all are.
- - SCABBRS=NO
- 0 Don't define scanner abbreviations.
- - SETS=NO
- 0 Don't set assembly parameter values.
- - SYMDEL=NO
- 0 Don't generate DBC (Debugging Controller) symbol deletes
- around control block DSECTS.
- - cntl-block=YES name of a COMMON control block
- 0 Define the DSECT for the specified control block.
- 1 55
- -
- CHKACCT - Check syntax of account number
- -
- 0CHKACCT is used to check the syntax of an account number.
- CHKACCT assumes that VRF, VR0 and VR1 are set as they are by
- SCAN.
- -
- <symbol> CHKACCT
- -
- RETURNS:
- 0 VRE = 0 ok
- 4 bad syntax
- 0 An LTR VRE,VRE is done.
- 0VRF, VF0 and VR1 are preserved.
- 1 56
- -
- CHKBOX - Check box number syntax
- -
- 0CHKBOX is used to check the syntax of a box number. CHKBOX
- assumes VRF, VR0 and VR1 are set as they are by SCAN.
- -
- <symbol> CHKBOX
- -
- RETURNS:
- 0 VRE = 0 ok
- 4 bad syntax
- 0 An LTR VRE,VRE is done.
- 0VRF, VR0 and VR1 are preserved.
- 1 57
- -
- CHKINIT - Check initials syntax
- -
- 0CHKINIT is used to check the syntax of a set of initials.
- CHKINIT assumes that VRF, VR0 and VR1 are set as they are by
- SCAN.
- -
- <symbol> CHKINIT
- -
- RETURNS:
- 0 VRE = 0 ok
- 4 bad syntax
- 0 An LTR VRE,VRE is done.
- 0VRF, VR0 and VR1 are preserved.
- 1 58
- -
- CHKKW - Check keyword syntax
- -
- 0CHKKW is used to check the syntax of a keyword. CHKKW
- assumes that VR1 points at the keyword and that VR0
- contains the length.
- -
- <symbol> CHKKW
- -
- RETURNS:
- 0 VRE = 0 ok
- 4 bad syntax
- 0An LTR, VRE, VRE is done.
- 1 59
- -
- CHKTERM - Check terminal id syntax
- -
- 0CHKTERM is used to check the syntax of a terminal id.
- CHKTERM assumes that VRF, VR0 and VR1 are set as they
- are by SCAN.
- -
- <symbol> CHKTERM
- -
- RETURNS:
- 0 VRE = 0 ok
- 4 bad syntax
- 0An LTR VRE, VRE is done.
- 0VRF, VR0 and VR1 are preserved.
- -NOTE:
- 0 At NIH, if the terminal id is NONE, VRF and VR1
- are set to point at asterisks and VR0 is set to
- <ERM.
- 1 60
- -
- CSPOST - Post with compare and swap
- -
- 0CSPOST posts an ECB. Under MVS, it uses the compare and
- swap instruction to avoid unnecessary calls to POST.
- -
- <symbol> CSPOST ecb<,code>
- -
- ecb addrla (passed in VR1)
- 0 Address of the ECB to be posted.
- - code valuela (passed in VR0)
- 0 The post code (default is 0).
- 1 61
- -
- CVBTD - Convert from binary to decimal
- -
- 0The CVBTD macro will convert a binary value to EBCDIC.
- Padding or truncation will take place in the high order
- positions.
- -
- <symbol> CVBTD loc,len,value
- -
- loc addrla (passed in VR1)
- 0 The address of the area to contain the EBCDIC
- result, right justified, with leading blanks.
- - len valuela (passed in VR0)
- 0 The length of the area to contain the EBCDIC result.
- If this specification is zero, the macro will use as
- many bytes as necessary, but the user should leave
- at least 11 bytes to contain the maximum result.
- - value addrl (passed in VRF)
- 0 The binary value to be converted.
- -
- 0RETURNS:
- 0 VRF = 0 all went ok
- 4 field too small
- 0 VR1 = starting address of resulting string
- 0 VR0 = length of resulting string
- 0 An LTR VRF,VRF is done
- 1 62
- -
- CVBTX - Convert from binary to hex
- -
- 0The CVBTX macro will convert each 4 bit halfbyte of the
- operand field into its 8 bit printable hex character
- representation.
- -
- <symbol> CVBTX loc,len,hex-loc
- -
- loc addrla (passed in VR1)
- 0 The address of the resulting string.
- - len valuela (passed in VR0)
- 0 The length of the resulting string. If this
- parameter is an odd number, the first digit of the
- data is ignored.
- - hex-loc addrla (passed in VRF)
- 0 The address of the data to be converted.
- -
- RETURNS:
- 0 VR1 = starting address of result
- 0 VR0 = length of result
- 0 An LTR VRF,VRF is done
- 1 63
- -
- CVBT$ - Convert from binary to $
- -
- 0The CVBT$ macro will convert a binary number to $XXX.XX form
- with truncation occuring at the high order positions.
- -
- <symbol> CVBT$ loc,len,value
- -
- loc addrla (passed in VR1)
- 0 The address of the resulting string.
- - len valuela (passed in VR0)
- 0 The length of the resulting string. If this
- specification is zero, the macro will use as many
- positions as are needed. The issuer should leave 13
- positions to handle the maximum result.
- - value addrl (passed in VRF)
- 0 The binary value to be converted.
- -
- RETURNS:
- 0 VRF = 0 all went ok
- 4 field too small for result
- 0 VR1 = starting address of resulting string
- 0 VR0 = length of resulting string
- 0 An LTR VRF,VRF is done
- 1 64
- -
- CVDATE - Convert Date to MM/DD/YY form
- -
- 0The CVDATE macro will return the date in MM/DD/YY form and
- optionally return the day of the week.
- -
- <symbol> CVDATE loc,date<,WEEKDAY=YES>
- -
- loc addrla (passed in VR1)
- 0 The address of the 8 or 18 byte area to contain the
- date/day.
- - date addrl (passed in VR0)
- 0 The date in OS format.
- - WEEKDAY=YES conditional form allowed
- 0 Requests that the day of the week immediately follow
- the date in specified area (one blank will separate
- the date and day).
- -
- RETURNS:
- 0 VR1 = starting address of resulting string
- 0 VR0 = length of resulting string (8 or 18)
- 1 65
- -
- CVDTB - Convert from decimal to binary
- -
- 0The CVDTB macro will convert an unsigned EBCDIC decimal
- number to binary.
- -
- <symbol> CVDTB loc,len<,EXACT=NO>
- -
- loc addrla (passed in VR1)
- 0 The address of the area containing the EBCDIC
- decimal value.
- - len valuela (passed in VR0)
- 0 The length of the area containing the EBCDIC decimal
- value.
- - EXACT=NO conditional form allowed
- 0 Requests that the EBCDIC decimal field be terminated
- by a non numeric digit occuring prior to the
- termination of the length specification.
- -
- RETURNS:
- 0 VRF = >=0 converted number
- -4 an invalid decimal digit was
- encountered, and EXACT=NO was not
- specified.
- -8 overflow
- 0 VR1 = address of first byte not converted (if
- EXACT=NO)
- 0 VR0 = number of unconverted bytes (if EXACT=NO)
- 0 An LTR VRF,VRF is done
- 1 66
- -
- CVTIME - Convert time to HH:MM:SS form
- -
- 0The CVTIME macro will convert a time to 24 hour HH:MM:SS
- form or to 12 hour HH:MM:SS A.M. (or P.M.) form.
- -
- <symbol> CVTIME loc,time<,AMPM=YES>
- -
- loc addrla (passed in VR1)
- 0 The address of the 8 or 13 byte field to contain the
- converted time.
- - time addrl (passed in VR0)
- 0 The time to be converted in 100th seconds.
- - AMPM=YES conditional form allowed
- 0 Requests the 12 hour HH:MM:SS A.M. (or P.M.) form.
- -
- RETURNS:
- 0 VR1 = starting address of resulting string
- 0 VR0 = length of resulting string (8 or 13)
- 1 67
- -
- CVTIM128 - Convert time from nearest 128 day period
- -
- 0The CVTIM128 macro will convert time in 100th of a second
- from the last 128 day period to current time and date.
- -
- <symbol> CVTIM128 time128
- -
- time128 addrl (passed in VR0)
- 0 The time of day in 100th of a second from the
- nearest 128 day period.
- -
- RETURNS:
- 0 VR0 = time of day in 100th of a second
- 0 VR1 = date in OS format
- 1 68
- -
- CVXTB - Convert from hex to binary
- -
- 0The CVXTB macro will convert each hex byte of a string into
- a 4 bit number.
- -
- <symbol> CVXTB loc,len,hex-loc
- -
- loc addrla (passed in VR1)
- 0 The address of the string to be converted.
- - len valuela (passed in VR0)
- 0 The length of the string to be converted. If this
- parameter is an odd number, a zero will be assumed
- before the first digit.
- - hex-loc addrla (passed in VRF)
- 0 The address of the resulting string.
- -
- RETURNS:
- 0 VRF = 0 all went ok
- 4 an invalid hex digit was encountered
- 0 VR1 = address of resulting string
- 0 VR0 = resulting string
- 0 An LTR VRF,VRF is done
- 1 69
- -
- DALLIST - Set up dynamic allocation list
- -
- 0DALLIST is used to construct a parameter list for MVS
- dynamic allocation (SVC 99).
- -
- <symbol> DALLIST BEGIN,code<,FLAGS1=(<flags1a>,<flags1b>)>
- <,FLAGS2=(<flags2a>,<flags2b>,<flags2c>,
- <flags2d>)><,ERROR=sym><,INFO=sym>
- <,MF=(fmt,loc)><,INIT=NO>
- 0<symbol> DALLIST TEXT,key,(<item>,<length>,<inst>)...<,MF=L>
- 0<symbol> DALLIST END<,SVC=NO>
- -
- code cexpr8
- 0 A code specifying the type of operation to be
- performed (allocation, unallocation, etc.).
- - flags1a cexpr8
- 0 Flags for the first byte of the FLAGS1 field.
- - flags1b cexpr8
- 0 Flags for the second byte of the FLAGS1 field.
- - flags2a cexpr8
- 0 Flags for the first byte of the FLAGS2 field.
- - flags2b cexpr8
- 0 Flags for the second byte of the FLAGS2 field.
- - flags2c cexpr8
- 0 Flags for the third byte of the FLAGS2 field.
- 1 70
- -
- flags2d cexpr8
- 0 Flags for the fourth byte of the FLAGS2 field.
- - ERROR=sym symbol
- 0 A label for the error code field.
- - INFO=sym symbol
- 0 A label for the information code field.
- - fmt L, E or R
- 0 Format of the macro expansion. R form is used to
- retrieve returned data from the parameter list.
- - loc relexpri
- 0 Used with MF=E to specify the location of the
- parameter list.
- - INIT=NO
- 0 Used with MF=E to specify that fields not explicitly
- specified are not to be initialized.
- - key cexpr16
- 0 A value specifying a type of text element.
- - item standard form: element for DC
- MF=L: element for DC
- MF=E: relexpri
- MF=R: relexpri
- 0 Used with standard form and MF=L to specify an item
- to be assembled in a DC. Used with MF=E to specify
- the location of data to be copied into the parameter
- list. Used with MF=R to specify a location to
- receive data from the parameter list.
- 1 71
- -
- length cexpr8
- 0 Specifies the length of the text item.
- - inst operation code
- 0 Used to specify the operation code used to store
- into the field.
- - MF=L
- 0 Used in a text item with DALLIST BEGIN,MF=E to
- specify that only the field is being defined, no
- initialization is to be performed.
- - SVC=NO
- 0 Used with standard form and MF=E to specify that
- SVC 99 is not to be issued.
- 1 72
- -
- DALMSG - Get messages explaining DYNALLOC errors
- -
- 0DALMSG is used to obtain standard IBM messages explaining non-zero
- return codes from DYNALLOC and DAIR. Uses IKJEFF18.
- -
- <symbol> DALMSG MF=(fmt,<loc>)<,DALLIST=loc2><,RC=rtncode>
- <,MSG1=sym><,MSG2=sym><,MSG1LEN=sym>
- <,MSG2LEN=sym><,FLAGS1=hex><,FLAGS2=hex>
- -
- fmt L or E
- 0 Format of the macro expansion.
- - loc addrla (passed in VR1)
- 0 Used with MF=E to specify the location of the parameter
- list.
- - DALLIST=loc2 addrl
- 0 Used with MF=E to specify the location of the pointer
- to the DYNALLOC or DAIR request blocks. Not used with
- MF=L.
- - RC=rtncode addrl
- 0 The return code that was returned in register 15 by SVC99
- or DAIR. Not used with MF=L.
- - MSG1=sym symbol
- MSG2=sym
- 0 A label for the first and second message fields returned from
- IKJEFF18. Normally used only with MF=L.
- - MSG1LEN=sym symbol
- MSG1LEN=sym
- 0 A label for the 2 byte length field of the first and
- second messages.
- 1 73
- -
- FLAGS1=hex 2 hex digits
- 0 Flags for the FLAGS1 field of the IKJEFF18 control
- block. Default is 40, meaning "do not do WTP or
- PUTLINE".
- - FLAGS2=hex 2 hex digits
- 0 Flags for the FLAGS2 field of the IKJEFF18 control
- block. Default is 33, meaning "DYNALLOC".
- -The standard MF=L invocation is:
- 0MFL DALMSG MF=L,MSG1=sym,MSG2=sym,MSG1LEN=sym,MSG2LEN=sym,
- FLAGS1=hex,FLAGS2=hex
- 0The standard MF=E form is
- 0<symbol> DALMSG DALLIST=locator,RC=,<,FLAGS1=hex><,FLAGS2=hex>
- MF=(E,MFL)
- -NOTE:
- 0 When DALLIST is used to create the dynamic allocation parameter
- list, the DALLIST option of DALMSG should specify the label on
- the DALLIST BEGIN,MF=L macro.
- 1 74
- -
- DCC - Define Constant Conditionally
- -
- -DCC is used to conditionally assemble a DC statement depending on the
- value of a global set symbol.
- -
- <symbol> DCC dc-operand,LENGTH=value
- -
- dc-operand any operand legal in a DC statement
- 0 The constant to be assembled.
- - LENGTH=value integer
- 0 If the value is not 0, the DC operand is assembled.
- Otherwise, the symbol is defined at the current
- location counter address.
- -
- EXAMPLE:
- 0TERMID: DCC CL&<ERM,'TTT',LENGTH=&<ERM;
- 1 75
- -
- DEBLANK - Deblank a string
- -
- 0The DEBLANK macro removes leading and/or trailing blanks
- from a string.
- -
- <symbol> DEBLANK loc-reg,len-reg<,work-reg><,TYPE=symbol>
- <,NULL=NO><,ZERO=NO><,LABEL=symbol><,FILL=char>
- <,FILADDR=byte>
- -
- loc-reg preg
- 0 Specifies the starting address of the string to be
- deblanked.
- - len-reg reg
- 0 Specifies the length of the string to be deblanked.
- After the termination of the macro, this register
- will contain the new length of the deblanked string.
- - work-reg preg
- 0 Provides a work register to be used in the search.
- More efficient code may be generated if this
- register is provided.
- - TYPE=symbol LEFT, RIGHT, or BOTH
- 0 Specifies elimination of leading (LEFT) or trailing
- (RIGHT) blanks, or both (BOTH). Default is RIGHT.
- - NULL=NO
- 0 The NO condition specifies that the resulting string
- will never be 0. More efficient code may be
- generated if this option is specified.
- - ZERO=NO
- 0 The NO condition specifies that the value in the len
- register will never be 0. More efficient code may
- be generated if this option is specified.
- 1 76
- -
- LABEL=symbol relexpri
- 0 The location to receive control if the resulting
- string has a length of zero.
- 0 FILL=char cexpr8
- 0 Used to specify a character other than blank to be
- stripped.
- 0 FILADDR=byte relexpri
- 0 Used to specify the location of the character
- to be stripped. May not be used with FILL.
- -RETURNS:
- 0 loc-reg = location of deblanked string
- 0 len-reg = length of deblanked string
- 1 77
- -
- DSC - Define Storage Conditionally
- -
- 0DSC is used to conditionally assemble a DS statement depending on the
- value of a global set symbol.
- -
- <symbol> DSC ds-operand,LENGTH=value
- -
- ds-operand any operand legal in a DS statement
- 0 Specifies the storage to be defined.
- - LENGTH=value integer
- 0 If the value is not 0, the DS operand is assembled.
- Otherwise, the symbol is defined at the current
- location counter address.
- -
- EXAMPLE:
- 0TERMID: DSC CL&&TERM,LENGTH=&<ERM;
- 1 78
- -
- EDIT - Generate edit mask and ED/EDMK instruction
- -
- 0EDIT is used to create both an appropriate mask string or
- editing numeric data and the ED or EDMK instruction to
- perform the requested operation.
- -
- <symbol> EDIT to-field,from-field<,to-length><,from-length>
- <,CALC=NO><,DIGITS=n><,MARK=YES>
- -
- to-field relexpri or (preg)
- 0 The address of the field to contain the edited
- source digits. It must be an even number of bytes
- in length.
- - from-field relexpri or (preg)
- 0 The address of the field containing the source
- digits to be EDITed to the to-field. It must
- contain sufficient digits to satisfy the implicit
- (or explicit) length of the to-field.
- - to-length cexpr4
- 0 An explicit specification of the length of the
- to-field. It must be specified if the to-field is
- presented in base-displacement form. If specified
- it will override the implicit length for the
- to-field.
- - from-length cexpr4
- 0 An explicit specification of the length of the
- from-field. It must be specified if the from-field
- is specified in base-displacement form. If
- specified it overrides the implicit length for the
- from-field.
- 0 CALC=NO
- 0 Indicates that the addresses specified are to be
- used exactly as is for the from- and to-fields in
- the generated ED or EDMK instruction. If not
- specified the macro will calculate the offset in the
- from-field to use in the ED or EDMK instruction.
- 1 79
- -
- DIGITS=n cexpr4
- 0 Specifies the minimum number of significant digits
- to be produced.
- 0 MARK=YES
- 0 Indicates that an EDMK instruction should be
- generated. Register 1 will then point to the first
- significant character in the edited field. If the
- field does not produce a significatn digit, register
- 1 will point to the low order character of the
- edited field.
- 1 80
- -
- FASTPOST - Perform low-overhead post
- -
- 0FASTPOST is used to post an ECB as quickly as possible.
- The method depends on the operating system.
- -
- <symbol> FASTPOST ecb,<code>,<REG=workreg>,<SUPMODE=YES>,
- <SAVELOC=area>
- -
- ecb addrla (passed in VR1)
- 0 The address of the ECB to be posted.
- 0 code valuela (passed in VR0)
- 0 The post code to be used. The default is 0.
- 0 REG=workreg preg
- 0 A register in which the contents of register
- XRA may be saved. Specify REG=XRA if XRA
- may be destroyed.
- 0 SUPMODE=YES conditional form allowed
- 0 Specifies that the caller is in supervisor state
- with non-zero key. Generally required to get
- speedup. Under MVS, causes the branch entry to
- POST to be used unless SAVELOC is used.
- 0 SAVELOC=area relexpri
- 0 The address of the same 2-word area specified in
- the FASTWAIT macro used to wait on the ECB.
- SUPMODE=YES must also be specified. Under MVS,
- causes RESUME to be used.
- 1 81
- -
- FASTWAIT - Low overhead WAIT macro
- -
- 0FASTWAIT is the equivalent of an OS WAIT macro. When possible,
- it generates more efficient code than does the OS macro
- (e.g. using the branch entry).
- -
- <symbol> FASTWAIT <count>,<ECB=ecbaddr>,<ECBLIST=listaddr>,
- <REG=workreg>,<SUPMODE=YES>,<SAVELOC=area>
- -
- count addrla
- 0 Number of ECBs which must be posted in order for
- WAIT to complete. Default is 1.
- 0 ECB=ecbaddr addrla
- 0 Address of a single ECB.
- 0 ECBLIST=listaddr addrla
- 0 Address of a list of ECBs.
- 0 REG=workreg preg
- 0 saved. Specify REG=XRA if XRA may be destroyed.
- Required.
- 0 SUPMODE=YES conditional form allowed
- 0 Specifies that the calling program is in supervisor
- state with non-zero key.
- 0 SAVELOC=area relexpri
- 0 The address of the same 2-word area specified in
- all FASTPOST instructions used to pose ECBs in
- the list. Only FASTPOST may be used for posting.
- SUPMODE=YES is required. Under MVS, causes
- SUSPEND to be used.
- 1 82
- -
- FLAGSEG - TSEG or VSEG FLAG message
- -
- 0FLAGSEG is used to TSEG or VSEG the message issued when
- a set of initials is flagged. The message may be multiple
- lines.
- -
- <symbol> FLAGSEG REG=workreg,ACCT=account,INIT=initials,
- <LABEL=(routine,label)>,<VAREA=varea>
- -
- REG=workreg preg
- 0 A work register used to keep track of which line of
- the message is being issued. Should be set to zero
- before FLAGSEG is issued for the first time.
- 0 ACCT=account addrla
- 0 Address of the account number
- 0 INIT=initials addrla
- 0 Address of the initials
- 0 LABEL=(routine,label) routine: MMSGINIT,WMSGINIT, or null
- label: string
- 0 VAREA=varea addrla
- 0 Address of the VAREA if VSEG is to be used instead
- of TSEG
- -RETURNS:
- 0 CC = Z Another line of the message has been TSEGed
- or VSEGed.
- NZ There are no more lines in the message. No
- line was TSEGed or VSEGed.
- 0 FLAGSEG should be issued repeatedly until a non-zero
- condition code is returned.
- 1 83
- -
- FREESWAM - Free SWA Manager Work Area
- -
- 0The FREESWAM macro is used to free the MVS SWA Manager Work area
- that is pointed to by the TCB. These work areas can cause severe
- fragmentation of private area storage above the region
- (subpools 229 and 230).
- -
- <symbol> FREESWAM
- 1 84
- -
- GBLSET - Specify values of global set symbols
- -
- 0GBLSET is used to specify values for certain global set
- symbols when CSETUP or OSSETUP is not used. This
- information is required by a number of the other macros.
- -
- <symbol> GBLSET <(CPU,cpu-value)>,<(MP,mp-value)>,
- <(OS,os-value)>
- -
- cpu-value 360, 370, or 370BS
- 0 Specifies whether the CPU is 360, 370 or 370 with
- Branch and Save instructions. Controls whether 370
- instructions will be generated.
- - mp-value YES or NO
- 0 Specifies whether the CPU is a multiprocessor.
- - os-value MFT,MVT,VS1,SVS,MVS,XA
- 0 Specifies the operating system.
- 1 85
- -
- IPRIVSCN - Scan for initials privileges
- -
- 0IPRIVSCN scans for initials privileges and sets appropriate
- (KWRIFL) bits in a specified byte.
- -
- <symbol> IPRIVSCN byte<,TYPE=NO>
- -
- byte relexpri
- 0 Address of the flag byte.
- - TYPE=NO
- 0 Causes NO to be appended in front of each word to be
- scanned for. Also causes bits to be turned off
- instead of on in the byte.
- 1 86
- -
- IPRIVSEG - TSEG or VSEG initials privileges
- -
- 0IPRIVSEG is used to TSEG or VSEG a word for each initials
- privilege bit (KWRIFL) which is set in a specified byte.
- -
- <symbol> IPRIVSEG byte<,BEFORE=string><,AFTER=string>
- <,VAREA=addr>
- -
- byte relexpri
- 0 Address of the privilege byte.
- - BEFORE=string string
- 0 A string of characters to be appended before each
- word. May also be specified as location and length.
- - AFTER=string string
- 0 A string of characters to be appended after each
- word. May also be specified as location and length.
- - VAREA=addr addrla
- 0 Address of the VAREA, if VSEG is to be used.
- 1 87
- -
- MCCW - Macro CCW
- -
- 0MCCW permits a value to be placed in the unused byte of a
- CCW.
- -
- <symbol> MCCW op,addr,flags,length<,CODE=code>
- -
- op cexpr8
- 0 The CCW operation code.
- - addr relexpra
- 0 The CCW data address.
- - flags cexpr8
- 0 The CCW flags.
- - length cexpr16
- 0 The CCW data length.
- - CODE=code cexpr8
- 0 The value to be placed in byte 5 of the CCW.
- 1 88
- -
- OPENP - Check for successful open
- -
- 0The OPENP macro will check DCBOFLGS to see if a DCB was
- opened successfully.
- -
- <symbol> OPENP dcb-addr
- -
- dcb-addr relexpri
- 0 The address of the DCB to be checked.
- -
- RETURNS:
- 0 CC = Z DCB not open
- O DCB open
- -
- NOTE:
- 0 OPENP requires the DCB DSECT.
- 1 89
- -
- ORGHIGH - ORG to high address
- -
- 0ORGHIGH is used to ORG to the highest of a specified list of
- addresses.
- -
- <symbol> ORGHIGH address,...,BASE=addr
- -
- address relexpr
- 0 One of a list of addresses. Highest is selected.
- - BASE=addr relexpr
- 0 An address less than all the others.
- 1 90
- -
- OSCALL - Pass control to a subroutine using OS conventions
- -
- 0The OSCALL macro will pass control to a specified
- subroutine using OS calling conventions.
- -
- <symbol> OSCALL routine,<A>,<VR1=parm>,<VR0=parm>,<VRF=parm>,
- <PARAM=(parm,...),<VL=1>>,
- <TEST=YES>
- -
- routine relexpra or vsymbol or (preg)
- 0 The address of the subroutine to be called.
- - A
- 0 The address specified in the routine parameter is a
- relexpra.
- - VR1=parm addrla
- 0 A parameter to be passed in register 1. May also be
- specified as R1=parm.
- 0 VR0=parm addrla
- 0 A parameter to be passed in register 0. May also be
- specified as R0=parm.
- 0 VRF=parm addrla
- 0 A parameter to be passed in register 15. May also
- be specified as R15=parm or RCR=parm.
- 0 PARAM=(parm,...) addrla
- 0 A list of parameters to be passed. A parameter
- list is built in the stack and the address loaded
- into VR1.
- 0 VL=1
- 0 Specifies that the X'80' bit should be turned on
- in the high order byte of the last list entry.
- 1 91
- -
- TEST=YES Specifies that the routine is
- not to be called if its address
- is zero.
- 0NOTE:
- 0 Register 15 is loaded with the entry point address
- unless VRF=parm is specified.
- 1 92
- -
- OSENTER - Generate OS entry code
- -
- 0The OSENTER macro will generate proper OS entry linkage
- code.
- -
- <symbol> OSENTER <(reg1,reg2)...>,<,ENTRY=NO>
- <,BASE=NO><,SAVE=area><,PACK=YES>
- <,FORWARD=YES><,ID=identification>
- -
- reg1,reg2 regs
- 0 Registers to be saved in STM form. Any number of
- parenthesized pairs may be specified. If reg2 is
- the same as reg1, then reg2 and the parentheses may
- be omitted.
- - ENTRY=NO
- 0 Requests that an ENTRY point not be generated.
- - BASE=NO
- 0 Requests that a base register not be established.
- - SAVE=area relexpri
- 0 The address of the users register save area.
- - PACK=YES
- 0 Registers are to be stored packed at 12 bytes after
- the start of the save area.
- - FORWARD=YES
- 0 Specifies that the forward linking of save areas is
- to be performed. Normally only backward linking is
- done.
- 1 93
- -
- ID=identification symbol or string or *
- 0 Specifies an identifying character string to be
- assembled 4 bytes after the entry point. * indicates
- that the entry name (or the CSECT name if there is
- no entry name) is to be used.
- -
- NOTES:
- 0 1. The base register is BASER (see OSSETUP).
- 0 2. If SAVE=area is not specified, then no new save area
- will be established.
- 0 3. The generated code does not depend on register 15
- being loaded with the entry point address unless
- ID=identification is specified.
- 1 94
- -
- OSEXIT - Generate OS return code
- -
- 0The OSEXIT macro will generate proper OS exit linkage code.
- -
- <symbol> OSEXIT <(reg1,reg2)...>,<,SAVE=area><,LTR=reg>
- <,PACK=YES><,RC=value><,FLAG=YES>
- <,BRANCH=NO>
- -
- reg1,reg2 registers
- 0 Registers to be restored in LM format. Any number
- of parenthesized pairs may be specified. When reg2
- is the same as reg1, reg2 and the parentheses may be
- omitted.
- - SAVE=area relexpri
- 0 The address of the program's register save area.
- - LTR=reg reg
- 0 Requests that an LTR reg,reg be performed to set the
- condition code upon return.
- - PACK=YES
- 0 Must be specified if PACK=YES was coded on the
- corresponding OSENTER macro.
- - RC=value valuela
- 0 Specifies a return code to be loaded into register
- 15.
- - FLAG=YES
- 0 Specifies that X'FF' is to be placed into the
- high-order byte of word 4 of the save area after the
- registers are restored.
- 1 95
- -
- BRANCH=NO
- 0 Specifies that the final branch to the return
- address is not to be generated.
- -NOTE:
- 0 If SAVE=area is not specified, then the registers are
- restored from the area pointed to by register 13. Note
- that SAVE=0(STR) is perfectly acceptable.
- 1 96
- -
- OSSETUP - Set up OS linkage environment
- -
- 0The OSSETUP macro, used once at the start of the program
- (after macro definitions, but before any code or EQUs),
- defines register names and optionally defines DSECTS for
- certain OS control blocks.
- -
- symbol OSSETUP <REGS=option><CBS=option>,<ctlblock=YES>...,
- <R15=name><,R14=name><,R13=name><,BASER=name>
- <,R1=name><,R0=name>
- -
- symbol 1-8 characters (required)
- 0 CSECT name for the module.
- - REGS=option PLI or NO
- 0 PLI is used to request PL/I-compatible register
- definitions, NO specifies that register
- definitions should not be included.
- - CBS=option NO or ALL
- 0 NO specifies that no control block DSECTS are to be
- generated, ALL specifies that all are.
- 0 ctlblock=YES name of a COMMON control block
- 0 Specifies that the DSECT for the named control
- block is to be generated.
- -
- R15=name symbol
- 0 Name to be used by OSENTER, OSEXIT and OSCALL to
- refer to register 15. Default is RCR.
- - R14=name symbol
- 0 Name to be used by OSENTER, OSEXIT and OSCALL to
- refer to register 14. Default is RTNR.
- 1 97
- -
- R13=name symbol
- 0 Name to be used by OSENTER, OSEXIT and OSCALL to
- refer to register 13. Default is SAVER.
- - BASER=name symbol
- 0 Register to be loaded by OSENTER as a base register.
- Default is BASER.
- - R1=name
- 0 Name to be used by OSENTER, OSEXIT and OSCALL to
- refer to register 1. Default is VR1.
- - R0=name
- 0 Name to be used by OSENTER, OSEXIT and OSCALL to
- refer to register 0. Default is VR0.
- -
- NOTE:
- 0 Register definitions are as follows:
- 0 Default PLI
- Register Absolute name Symbolic name Symbolic name
- 0 0 R0 VR0 VR0
- 1 R1 VR1 VR1
- 2 R2 XRA, LOWR XRA,HIGHR
- 3 R3 XRB XRB
- 4 R4 XRC XRC
- 5 R5 XRD XRD
- 6 R6 XRE XRE
- 7 R7 XRF XRF
- 8 R8 XRG XRG
- 9 R9 XRH XRH
- 10 R10 XRI XRI
- 11 R11 XRJ BASER,HIGHR
- 12 R12 BASER, HIGHR GCBR
- 13 R13 SAVER SAVER
- 14 R14 RTNR RTNR
- 15 R15 RCR RCR
- 0 LOWR and HIGHR are for use with OSENTER and OSEXIT when
- specifying registers to be saved and restored.
- 1 98
- -
- SCABBR - Define scanner abbreviations
- -
- 0SCABBR is used to specify abbreviations for keywords to be
- used in SCKW macros.
- -
- SCABBR keyword,synonym1,...,synonymN
- -
- keyword 1-14 characters or string
- 0 Specifies the keyword to be abbreviated.
- - synonym1,...,synonymN 1-14 characters or string
- 0 Specifies the abbreviations and/or synonyms for the
- keyword.
- -
- NOTES:
- 0 1. SCABBR generates no code.
- 0 2. All SCABBR calls must be in the SCABBRS copy module
- in ascending order by keyword.
- 1 99
- -
- SCAN - Scan the next token
- -
- 0The SCAN macro scans the next token from the command string.
- An optional table of SCKW macros can be used to specify
- tests to be performed on the token or its following
- parameter.
- -
- <symbol> SCAN <table-address><,BRANCH=NO><,LIMIT=length>
- <,SCT=sct-address>
- -
- table-address addrla (passed in VR1) or *
- 0 Points to a list of SCKW macros. Each macro
- specifies a test to be applied to the token or the
- parameter which follows it.
- 0 If * is specified, the SCAN macro must be followed
- by the SCKW list. A SCANEND macro defines the place
- where execution resumes.
- - BRANCH=NO conditional form allowed
- 0 This operand is valid only if a table address
- is specified. It instructs the scanner not to
- branch to the address given in the SCKW macro if the
- test is successful, but instead to return following
- the SCAN macro with the address of the exit routine
- in VRE.
- - LIMIT=length valuela (passed in VR0)
- 0 Specifies a maximum length for the token when no
- table is specified. The error exit is taken if the
- length is exceeded.
- - SCT=sct-address addrla (passed in VRF)
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- 1 100
- -
- RETURNS:
- 0 1. If a table address is not given, control is returned
- following the macro with:
- 0 VR0 containing the length of the scanned token
- 0 VR1 pointing to the token. An LTR is done on VR0
- before the return is given. A length of zero
- means that there were no more tokens.
- 0 VRF pointing to an area containing the token
- padded with blanks to a length of &LSCAN.
- -
- 2. If a table address is specified the token is
- subjected to a series of tests, as specified by the
- SCKW macros. If the tests called for in an SCKW
- macro succeed, control is given to an address given
- in the macro. Control is returned following the
- SCAN macro only when the string being scanned is
- exhausted.
- 0 Registers are set as follows when SCKW exit routines
- are entered:
- 0 VR0 - length of token or parameter
- VR1 - location of token or parameter
- RTNR - a return address to continue the scan
- with the next token.
- VRF - setting varies for different SCKW macros.
- VRE - setting varies for different SCKW macros.
- -
- NOTE:
- 0The scanner determines tokens by the following rules.
- 01. <letter>::= letterdigitdegreeplus-minus
- .$@_!<>%?#
- 0 <slash>::= / + - ^ * : ; & <vertical-bar>
- 0 <string-delimiter> ::= ' " ( )
- 0 <blank>::= blank = ,
- 0 <delimiter>::= <slash> <string-delimiter>
- <all other characters>
- 1 101
- -
- 2. The next token consists of the <letter>s from the
- current scan point up to the next <delimiter>.
- 03. Quoted or parenthesized strings are terminated only by
- the occurence of the appropriate quote or parenthesis.
- 04. Delimiters, except for the following, also form tokens
- by themselves in the sense that they terminate the scan
- for the previous token, and are treated as a token of
- length 1 when the next scan is given. The exceptions
- are:
- 0 <blank> - these 3 symbols are included in a token
- only when they are part of a quoted or
- parenthesized string.
- 0 ; - scan never crosses or returns a ";" except
- when it is part of quoted or parenthesized
- strings.
- 0 ( - begins a parenthesized string
- 0 ) - must balance with preceding "("
- 0 ' and " - begin and end quoted strings. Doubled
- instances of either character within a
- string framed with the same character are
- passed as though they were <letter>s.
- 05. The symbols * - & receive special treatment because of
- their occurence in DSNAMES. If SCTYPE=0 is in effect
- they are handled as specified above. If SCTYPE=1 is in
- effect they are treated as members of the class <letter>
- and thus do not act as delimiters.
- 06. SCTYPE 2 is the same as SCTYPE 0, except that parentheses
- are treated as individual delimiters.
- 07. SCTYPE 3 is used for scanning JCL.
- 1 102
- -
- SCBACK - Back up one SCAN
- -
- 0SCBACK backs up the scanners pointer and length holder to
- the values they held before the most recent SCAN or SCKW
- exit.
- -
- <symbol> SCBACK <SCT=sct-address>
- - SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- 1 103
- -
- SCDONE - Test if tokens remain to be scanned
- -
- 0SCDONE tests to see if any further tokens remains to be
- scanned. If any exist, the SCERROR routine is entered.
- -
- <symbol> SCDONE <SCT=sct-address>
- - SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- 1 104
- -
- SCDQUOTE - Dequote a quoted string
- -
- 0SCDQUOTE strips quotes from around a string and changes
- internal doubled quotes to single quotes.
- -
- <symbol> SCDQUOTE loc,len
- -
- loc addrla (passed in VR1)
- 0 Location of the string to be dequoted.
- - len valuela (passed in VR0)
- 0 Length of the string to be dequoted.
- -
- RETURNS:
- 0 VR1 = location of the dequoted string
- 0 VR0 = length of the dequoted string
- -
- NOTES:
- 0 1. If the string is not quoted, no action is taken.
- 0 2. The string is overlayed by the dequoted string.
- 1 105
- -
- SCERROR - Specify error handling routine for SCAN
- -
- 0Specifies an error routine to be entered if any of the
- following occur:
- 0 CONDITION: VRF CONTENTS: NAME:
- 0. unbalanced quotes 0 SCTCUBQ
- 0. unbalanced parentheses 4 SCTCUBP
- 0. an integer exceeds the
- limit specified on the SCKW macro 8 SCTCIXM
- (VRE contains the limit)
- 0. an ordinal exceeds the limit specified
- on the SCKW macro (VRE contains the limit) 12 SCTCOXM
- 0. a line number exceeds the limit specified
- on the SCKW macro (VRE contains the limit) 16 SCTCLNXM
- 0. a token which should have been a
- positive integer or ordinal was zero 20 SCTCZNG
- 0. a token exceeds the maximum
- length specified in the SCKW limit 24 SCTCLXM
- (VRE contains the limit)
- 0. an expected parameter is missing 28 SCTCUE
- 0. A or V type address constant in SCKW 32 SCTCZBV
- contains zero
- 0. SCDONE issued when tokens remain to be 36 SCTCSCD
- scanned
- 0. hex number has invalid format 40 SCTCBXN
- 0. hex string has invalid format 44 SCTCBXS
- 0. required quotes were missing 48 SCTCNQ
- 0. required parentheses were missing 52 SCTCNP
- 0. integer has invalid format 56 SCTCBINT
- 0. ordinal has invalid format 60 SCTCBORD
- 0. line number has invalid format 64 SCTCBLN
- 0Symbols for the error codes are defined in the SCT DSECT.
- 1 106
- -
- VR1 will contain the address of the offending token and VR0
- the length.
- -
- 0<symbol> SCERROR <NEW=new-routine><,OLD=new-reg>
- <NEWPARM=new-parm>,<OLDPARM=old-reg>,
- <,SCT=sct-address>
- -
- new-routine addrla
- 0 The address of the error handling routine to be
- called.
- - new-reg reg
- 0 A register which will be set to the address of the
- prior error handling routine. This permits
- reinstating the old value. Zero indicates there was
- no routine in effect.
- - NEWPARM=new-parm addrla
- 0 A parameter for the error handling routine.
- - OLDPARM=old-reg reg
- 0 A register which will be set to the value of the prior
- parameter for the error handling routine.
- - SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- -NOTE:
- 0 Since there is no register available to pass the parameter to the
- error handling routine, the routine must access the parameter with
- the OLDPARM option of SCERROR.
- 1 107
- -
- SCEXTRA - Test if more tokens exist
- -
- 0SCEXTRA is used to test if additional tokens remain to be
- scanned.
- -
- <symbol> SCEXTRA
- -
- RETURNS:
- 0 CC = Z no more tokens
- NZ more tokens exist
- 1 108
- -
- SCINIT - Set SCAN pointers
- -
- 0Directs the scanner to reset its pointer and length holder.
- -
- <symbol> SCINIT pointer,length<,SCT=sct-address>
- -
- pointer addrla
- 0 String pointer.
- - length addrla
- 0 Length of string.
- - SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- 1 109
- -
- SCKW - Specify a SCAN table entry
- -
- 0<symbol> SCKW <keywords>,address<,option-list>
- <,LIMIT=limit><,CODE=code>
- -
- keywords string, or a parenthesized list of
- strings (quotes are optional)
- 0 The keyword or keywords to match against the token.
- Abbreviations will be checked also.
- 0 If the keyword field is present, then any options
- specified (see below) must be verified or the
- SCERROR routine will be entered. If the keyword is
- omitted, then the option tests have a different
- meaning: failing the test merely causes the scanner
- to try the next SCKW. (Exception: Unwanted zero
- values or exceeding the limit always cause
- an entry to SCERROR.)
- - address relexpra or *
- 0 Branch point to be taken if test succeeds (see
- also option BRANCH on the SCAN macro). If * is
- specified, the SCANEND address is used.
- - option-list one or more of the following,
- enclosed in parentheses and
- separated by commas
- 0 P - a parameter should follow the keyword; verify
- the format of the parameter with any required
- tests and enter the routine with VR1 pointing
- to the parameter and VR0 containing its
- length. If the parameter fails the test, the
- SCERROR routine is entered with the appropriate
- code. This option only has meaning when the
- keyword field is present.
- 0 I - the token (or parameter following the keyword
- if "P" is specified) should be a non-negative
- integer; if so place the binary value in VRF
- and enter the routine; else the test fails.
- (the value is tested against the specified
- "limit" and the SCERROR routine entered if it
- is too large.)
- 1 110
- -
- PI - same as "I" except a value of zero causes the
- test to fail and the SCERROR routine to be
- entered.
- 0 O - same as "I" except the test is for an ordinal.
- 0 PO - same as "PI" except the test is for a positive
- ordinal.
- 0 LN - same as "I" except the test is for a line
- number.
- 0 PLN - same as "PI" except the test is for a positive
- line number.
- 0 QS - the token (or parameter if "P" is specified)
- should be a quoted string; if so, strip
- quotes, place as much as will fit into a
- 16-byte work area left justified with trailing
- blanks, and enter the routine. (VRF points to
- the work area.) else the test fails. If a
- limit is given, it applies to the length of
- the string.
- 0 OQS - optionally quoted string; same as "Q" except
- the user may omit the quotes.
- 0 PS - similar to QS, except the test is for a
- string enclosed in parentheses.
- 0 OPS - similar to OQS, except the test is for a
- string enclosed in parentheses.
- 0 J - scan table transfer; scanner will take the next
- SCKW from the specified address if the test
- succeeds. If no test is specified the
- transfer is unconditional. If no transfer
- address is specified a return following the
- previous transfer is performed. If this option
- is used in conjunction with the keyword field
- the scanner will scan off the next token
- before effecting the transfer to the new SCKW
- table.
- 0 SC - specify the type of adcon to generate (S, A or
- AC V); the default is S with a WYLBUR overlay, A
- VC otherwise. If the SCKW macro is within a
- WYLBUR overlay then AC and VC generate a WADCON.
- 0 SCI - Specifies that an S constant pointing at a
- word containing an address is to be generated.
- 1 111
- -
- B - back up the scan pointers to the values they
- held at the time the last SCKW exit routine
- was entered (or when the SCAN was issued if no
- SCKW exit has been entered for the current
- SCAN).
- 0 C - use command abbreviations as well as normal abbreviations.
- 0 limit constant which can be used in a DC
- (length of 1, 2 or 4 must be
- explicitly specified)
- 0 Sets a maximum value for integer, ordinal and line
- number parameters and the length of a quoted string.
- See SCERROR macro.
- - code constant which can be used in a DC
- (length of 1, 2 or 4 must be
- explicitly specified)
- 0 Sets a value to be placed in VRE when the routine is
- entered. See note 3.
- -
- NOTES:
- 0 1. SCKW ,addr standard way to end a table
- of SCKWs.
- 0 2. SCKW ,addr,B handy way to back up and exit
- if you didn't find what you
- wanted.
- 0 3. SCKW X,XORY,CODE=AL1(1) illustrates use of CODE.
- SCKW Y,XORY,CODE=AL1(2)
- 0 4. I, PI, QS and OQS allow hex integers and strings. Hex
- strings will be converted to internal format before
- the routine is called. Note that no space is
- permitted after the #.
- 0 5. The scanner can modify the source string if QS,
- OQS, PS or OPS is specified.
- 0 6. When P is specified without I, PI, O, PO, LN, or PLN
- a limit on length may be specified.
- 1 112
- -
- SCLAST - Read saved SCAN pointers
- -
- 0Returns location and length of last SCANned token or
- parameter in registers VR1 and VR0 respectively. Can be
- used in preparation of error messages.
- -
- <symbol> SCLAST <SCT=sct-address>
- -
- SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- -
- NOTE:
- 0 SCLAST is reset by a SCINIT or SCPOP.
- 1 113
- -
- SCPOP - Reset SCAN pointers from the stack
- -
- 0Resets the SCAN pointers from the stack (where they were
- stored by an earlier SCPUSH macro.
- -
- <symbol> SCPOP <SCT=sct-address>
- -
- SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- 1 114
- -
- SCPUSH - Push SCAN pointers into the stack
- -
- 0Similar to SCTELL, but places the pointer and length into
- the stack instead of returning them to the caller.
- -
- <symbol> SCPUSH <SCT=sct-address>
- -
- SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- 1 115
- -
- SCRTN - Return to scanner
- -
- 0SCRTN is used to return to the scanner from a processing
- routine so that further scanning can be performed.
- -
- <symbol> SCRTN <table><,RTNR=NO><,SCT=sct-address>
- -
- table addrla (passed in VR1)
- 0 Address of a new routine table. May be specified as
- * in the range of a SCAN * to return to the routine
- table which follows the SCAN *.
- - RTNR=NO
- 0 Specifies that the return address is not in RTNR.
- - SCT=sct-address relexpri
- 0 Address of the SCT. The SCT must be available if
- table or RTNR=NO is used. Default is SCTSTART.
- 1 116
- -
- SCSEMI - Step over semicolon
- -
- SCSEMI advances the scanner over a semicolon.
- -
- <symbol> SCSEMI <SCT=sct-address>
- -
- SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- -
- NOTE:
- 0 If the scanner is not positioned at a semicolon, no
- action is taken.
- 1 117
- -
- SCTELL - Read scan pointer
- -
- 0SCTELL returns the location and length of the string
- remaining to be scanned.
- -
- <symbol> SCTELL <SCT=sct-address>
- -
- SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- -
- RETURNS:
- 0 VR1 = location of first byte in string remaining to
- be scanned
- 0 VR0 = >0 length of string remaining to be scanned
- <=0 no string remains to be scanned (VR1 not
- valid)
- 1 118
- -
- SCTYPE - Switch SCAN delimiters
- -
- 0Tells the scanner which TRT table to use for subsequent
- calls. Two tables have been defined.
- -
- <symbol> SCTYPE <NEW=new-tbl-id><,OLD=current-tbl-holder>
- <,SCT=sct-address>
- -
- new-tbl-id valuela
- 0 The following values are accepted:
- 0 0 - use the standard table as defined in the notes
- to the SCAN macro.
- 0 1 - use a table which considers * & and - as
- <letter>s. This should be used for scanning
- dsnames (see SCAN macro).
- 0 2 - use a table which is the same as for 0 except
- that parentheses are individual delimiters.
- 0 3 - use a table suitable for scanning JCL.
- 0 4 - use a table suitable for scanning command procedure
- statements. Parentheses, comma and equal sign are
- all individual delimiters.
- - current-tbl-holder reg
- 0 The macro saves the current scan table type in the
- indicated register before returning control. This
- permits easy reinstatement of the previous table.
- - SCT=sct-address relexpri
- 0 Address of the scan control table (SCT). Must be
- specified if the SCT is not addressable.
- 1 119
- -
- SIM370 - Specify address of 370 simulation work area
- -
- 0SIM370 is used to specify or change the address of the work
- area for the 370 simulation instructions. The work area is
- 4 words initialized to zero.
- -
- <symbol> SIM370 <name>,<CLEAR=YES>
- -
- name symbol
- 0 The name of the work area. Omit if 370 simulation
- instructions are not allowed.
- - CLEAR=YES
- 0 Specifies that the area is to be cleared to zeros.
- 1 120
- -
- STRIP - Strip leading and/or trailing characters from string
- -
- The STRIP macro removes leading and/or trailing characters
- from a string.
- -
- <symbol> STRIP loc-reg,len-reg<,work-reg><,TYPE=symbol>
- <,NULL=NO><,ZERO=NO><,LABEL=symbol><,FILL=char>
- <,FILADDR=byte>
- -
- loc-reg preg
- 0 Specifies the starting address of the string to be
- stripped.
- - len-reg reg
- 0 Specifies the length of the string to be stripped.
- After the termination of the macro, this register
- will contain the new length of the stripped string.
- - work-reg preg
- 0 Provides a work register to be used in the search.
- More efficient code may be generated if this
- register is provided.
- - TYPE=symbol LEFT, RIGHT, or BOTH
- 0 Specifies elimination of leading (LEFT) or trailing
- (RIGHT) characters, or both (BOTH). Default is RIGHT.
- - NULL=NO
- 0 The NO condition specifies that the resulting string
- will never be 0. More efficient code may be
- generated if this option is specified.
- - ZERO=NO
- 0 The NO condition specifies that the value in the len
- register will never be 0. More efficient code may
- be generated if this option is specified.
- 1 121
- -
- LABEL=symbol relexpri
- 0 The location to receive control if the resulting
- string has a length of zero.
- 0 FILL=char cexpr8
- 0 Used to specify a character other than zero to be
- stripped.
- 0 FILADDR=byte relexpri
- 0 Used to specify the location of the character
- to be stripped. May not be used with FILL.
- -RETURNS:
- 0 loc-reg = location of stripped string
- 0 len-reg = length of stripped string
- 1 122
- -
- SYSBIT - Test for the presence of a 1 bit and set or reset it
- -
- 0The SYSBIT macro will test a byte and set the condition code
- to NZ if the specified bit is on and Z if it is not on. It
- will optionally set the bit on or off.
- -
- <symbol> SYSBIT byte-addr,bit-specification<,SET=option>
- <,RESET=option>
- -
- byte-addr relexpri
- 0 Specifies the address of the byte to be tested or
- set.
- - bit-specification cexpr8
- 0 Specifies the bit to be set/reset and tested.
- - SET=option YES or ONLY
- 0 The bit should be set on, if SET=YES, the condition
- code should be set based on the status of the bit
- before setting it on.
- - RESET=option YES OR ONLY
- 0 Same as YES, but the bit is set off.
- 1 123
- -
- SYSCMP - Compare expressions
- -
- 0The SYSCMP macro will generate an error statement if the
- specified relation is not true.
- -
- <symbol> SYSCMP expression1,relation,expression2
- <,MSG=text>
- -
- expression1 previously defined cexpr24
- - relation LT,NLT,LE,NLE,EQ,NEQ,GE,NGE,GT,NGT
- - expression2 previously defined cexpr24
- - MSG=text string
- 0 The quoted string will appear in an MNOTE
- immediately preceding the generated statement
- whether or not an error was created. If no MSG is
- provided, then a system generated message will be
- supplied.
- 1 124
- -
- SYSKWT - Check for valid macro keyword
- -
- 0<symbol> SYSKWT name,value,legal-list<,COND=option><,NULL=NO>
- -
- name name of parameter to be checked
- 0 Specifies the name of the keyword being checked
- (used for error message).
- - value the macro parameter to be checked
- - legal-list list of legal values in
- parentheses
- - COND=option NO or parenthesized list of legal
- values
- 0 The conditional form of the keyword is not allowed if
- NO is specified or if a list is specified and value
- is not in the list.
- - NULL=NO
- 0 The parameter may not be null.
- 1 125
- -
- SYSLBL - Generate a label
- -
- 0The SYSLBL generates a DS 0H if there is a symbol in the
- label field.
- -
- <symbol> SYSLBL <TYPE=alignment>
- -
- TYPE=alignment X, H, F or D
- 0 Specifies the alignment. H is the default.
- 1 126
- -
- SYSLR - Load register with value
- -
- 0The SYSLR macro provides a generalized mechanism for loading
- a value into a register.
- -
- <symbol> SYSLR reg,value<,TYPE=xxx><,NULL=value><,OP=opcode>
- <,SELECT=(values)><,ERR='msg'><,LTR=YES>
- <,STRLEN=string-length>
- -
- reg reg
- 0 Denotes the register to be loaded.
- - value valuela or L:expr, LA:expr,
- LH:expr, LOADx:expr (x may be B, H,
- LH, P, F, LF) or string
- 0 Specifies the value to be loaded into the register.
- Using L:, LA:, or LH: specifies the opcode to be
- used in the loading. LOADx implies non-aligned
- loading, where LOADLH implies clearing the high
- order bytes rather than propagating the sign.
- - TYPE=xxx any nonblank value, conditional
- form allowed
- 0 Requests that the register be complemented.
- - NULL=value anything valid for the value
- parameter
- 0 Specifies a value to be used if the value operand is
- null. The default is NULL=0.
- - OP=opcode L, LA, LH, LOADx, LITY, LITA
- 0 Specifies the op code to be used for the load. The
- default is LA. LITY, LITA mean to load from a
- literal Y or A constant, respectively.
- 1 127
- -
- SELECT=(values) list of options in parentheses
- 0 Specifies keywords that are valid for the TYPE=
- parameter. If TYPE= is not one of these, the
- complementing will not be performed.
- - ERR='msg' string
- 0 Error message to be issued if the value is null.
- - LTR=YES
- 0 Specifies that an LTR is to be performed on the
- register after it is loaded.
- - STRLEN=string-length cexpr8
- 0 Specifies the length when string notation is used.
- 1 128
- -
- SYSLST - Load and store a value
- -
- 0<symbol> SYSLST location<,NEW=value><,OLD=reg><,LOAD=opcode>
- <,STORE=opcode><,OP=opcode><,REG=reg>
- -
- location relexpri
- 0 Address to be inspected.
- - NEW=value valuela
- 0 Specifies a new value to be placed into the
- location.
- - OLD=reg reg
- 0 Specifies a register to receive the old value.
- - LOAD=opcode L, LH or LOADB
- 0 Specifies the instruction to be used to load from
- the location. Default is L.
- - STORE=opcode ST, STH or STC
- 0 Specifies the instruction to be used to store into
- the location. Default is ST.
- - OP=opcode LA, L, LH or LOADx
- 0 Specifies the opcode to be used to load a new value.
- Default is LA.
- - REG=reg reg
- 0 Specifies the work register to be used. The default is RTNR.
- 1 129
- -
- SYSLV - Load values into a register
- -
- 0<symbol> SYSLV register,value1,option1,select1...
- valueN,optionN,selectN
- -
- value1...valueN integer between 1 and 4095
- 0 Specifies a value to be loaded into the register.
- - option1...optionN anything, conditional form allowed
- 0 If non-null, specifies that the associated value is
- to be loaded.
- - select1...selectN list of options in parentheses
- 0 Specifies the keywords for which the associated
- value is to be loaded. Limits the effect of
- option1...optionN.
- -
- NOTES:
- 0 1. The register is set to zero if no values are loaded.
- 0 2. If more than one value is selected to be loaded, the
- sum of all of them is loaded. The sum must be less
- than or equal to 4095.
- 1 130
- -
- SYSPRED - Generate code to test predicate
- -
- 0SYSPRED is used to generate code to branch based on the
- truth or falsity of a predicate specification.
- -
- <symbol> SYSPRED label,<BRANCH=FALSE>,
- IF=(opcode,operand,operand,cc,
- <andor,opcode,operand,operand>...)
- -
- label symbol
- 0 Label to branch to if the predicate is true.
- 0 BRANCH=FALSE
- 0 Specifies that the branch is to be taken if the
- predicate is false rather than true.
- 0 opcode
- 0 A valid operation code
- 0 operand
- 0 An operand for the specified opcode.
- 0 cc Z, NZ, M, NM, P, NP, O, NO,
- E, NE, L, NL, H, NH
- 0 The condition code which means "true".
- 0 andor AND or OR
- 0 Used to specify how multiple instructions are
- to be combined.
- 1 131
- -
- SYSQS - Locate quoted string
- -
- 0The SYSQS macro will load the beginning address and length
- of a string into the specified registers.
- -
- <symbol> SYSQS loc-reg,len-reg,location,length
- <,NULL=(loc,len)><,TYPEA=option>
- <,TYPEL=option><,SELECTA=options>
- <,SELECTL=options>
- 0 or
- -<symbol> SYSQS loc-reg,len-reg,string,<length>
- <,NULL=(loc,len)><,TYPEA=option>
- <,TYPEL=option><,SELECTA=options>
- <,SELECTL=options>
- -
- loc-reg reg
- 0 Specifies the register to contain the starting
- address of the string.
- - len-reg reg
- 0 Specifies the register to contain the length of the
- string.
- - location addrla
- 0 Provides the address of the string.
- - string string
- 0 Provides the literal string.
- - length valuela or cexpr8 depending on use
- of location or string
- 0 Provides the length of the string. If the location
- option is used, this parameter must be supplied. If
- the string option is used, it is optional.
- 1 132
- -
- TYPEA=option anything not null, conditional
- form allowed
- 0 Specifies that the address register is to be
- complemented.
- - TYPEL=option anything not null, conditional
- form allowed
- 0 Specifies that the length register is to be
- complemented.
- - NULL=(loc,len) anything valid for location or
- string and length
- 0 Supplies the location and length to be returned if
- the loc,len parms are null.
- - SELECTA=options list of options in parentheses
- 0 Specifies which options TYPEA is effective for.
- - SELECTL=options list of options in parentheses
- 0 Specifies which options TYPEL is effective for.
- 1 133
- -
- SYSRNG - Test range of integer
- -
- 0SYSRNG issues an MNOTE if the integer supplied exceeds
- the specified bounds.
- -
- <symbol> SYSRNG name,integer,relation1,value1,...,
- relationN,valueN
- -
- name unquoted string
- 0 An identifying name to be used in the MNOTE.
- - integer unsigned integer or SETA symbol
- 0 The integer to be tested.
- - relationI LT,LE,EQ,GE,GT,NLT,NLE,NEQ,NGE,
- NGT or MULT
- 0 A relation which must be satisfied (MULT means
- multiple of).
- - valueI integer or SETA symbol
- 0 Second operand of the relation.
- 1 134
- -
- SYSTANDB - Generate test and branch
- -
- 0SYSTANDB is used to generate a test and branch sequence in
- support of the conditional form of macro operands.
- -
- <symbol> SYSTANDB (option,testop,testopnd,testopnd,<testcc>),
- instlen,instop,instopnd,instopnd,<BC=N>
- -
- option
- 0 Macro option, not used by SYSTANDB.
- 0 testop valid opcode
- 0 Operation code for the test instruction.
- 0 testopnd
- 0 Operand for the test instruction
- 0 testcc Z, NZ, M, NM, P, NP, O, NO, E, NE,
- L, NL, H, NH
- 0 Condition code on which a branch around the generated
- instruction is to be performed.
- 0 instlen 2, 4 or 6
- 0 Length of the instruction to be branched around.
- 0 instop valid opcode
- 0 Instruction to be executed if test is true.
- 0 instopnd
- 0 Operands for instop.
- 0 BC=N
- 0 Specifies that the branch is to be performed
- if the specified condition code is not set by
- the test instruction.
- 1 135
- -
- NOTE:
- 0 Generated code is of the form
- 0 testop testopnd,testopnd
- Btestcc *+4+instlen
- instop instopand,instopand
- 1 136
- -
- TIME128 - Return time since last 128 day period
- -
- 0The TIME128 macro will return in VR0 the time in 100th of a
- second from the beginning of the nearest 128 day period.
- VR1 will contain the date is OS form.
- -
- <symbol> TIME128
- -
- RETURNS:
- 0 VR0 = time in 100th of a second from beginning of
- last 128 day period
- 0 VR1 = date in OS format
- 1 137
- -
- TIOTSRCH - Locate TIOT entry
- -
- 0The TIOTSRCH macro will locate a TIOT entry for a
- specified DDNAME.
- -
- <symbol> TIOTSRCH reg1,reg2,ddname<,UCB=NO>
- -
- reg1 preg
- 0 Work register.
- 0 reg2 reg
- 0 Work register.
- - ddname relexpri
- 0 The address of the 8 byte area containing the ddname
- (left justified and padded with blanks).
- - UCB=NO
- 0 Requests that the address of the TIOT entry for the
- ddname rather than the UCB address be returned.
- -
- RETURNS:
- 0 The address of the requested TIOT or UCB entry will be
- returned in reg1. The condition code is set to NZ if
- the DDname is found, Z otherwise.
- 1 138
- -
- UAOP - Generate instruction with unaligned operand
- -
- 0UAOP is used to generate an RX instruction with an unaligned
- operand. Avoids alignment error messages from the assembler.
- -
- <symbol> UAOP opcode,register,address
- -
- opcode a valid RX operation code
- 0 The operation code for the instruction to be
- generated.
- - register reg
- 0 The register operand for the instruction.
- - address relexpri
- 0 The address operand for the instruction. Indexing
- may not be used.
- 1 139
- -
- VAREA - Define storage for a varea
- -
- 0The VAREA macro will define enough storage space for a
- varea.
- -
- <symbol> VAREA
- -
- NOTE:
- 0 Storage for a VAREA may also be reserved by allocating
- &VAREA bytes on a fullword boundary.
- 1 140
- -
- VCLEAR - Clear a varea
- -
- 0The VCLEAR macro will reset a varea so that the next VSEG
- goes at the start of the buffer.
- -
- <symbol> VCLEAR varea
- -
- varea relexpri or (preg)
- 0 The address of the varea to be cleared.
- 1 141
- -
- VINIT - Initialize a varea
- -
- 0The VINIT macro will initialize a varea for processing by
- other 'V' macros.
- -
- <symbol> VINIT varea,routine,loc,len
- -
- varea relexpri or (preg)
- 0 The address of the varea to be initialized.
- - routine addrla (loaded into VRF)
- 0 The address of the routine to receive control if the
- buffer overflows or a VOUT macro is issued.
- - loc addrla (loaded into VR0)
- 0 The location of the buffer into which VSEGs will be
- done.
- - len valuela (loaded into VR1)
- 0 The length of the buffer into which VSEGs will be
- done.
- -
- NOTE:
- 0 The contents of the registers upon entry to the routine
- are:
- 0 VRF = 0 VOUT
- 4 buffer overflow
- 0 VRE = varea address
- 0 VR1 = location of the buffer
- 1 142
- -
- VR0 = length of information to be put into
- the buffer
- 0 RTNR = location to return to in order to complete
- the operation
- 1 143
- -
- VOUT - Output the contents of the buffer
- -
- 0The VOUT routine will pass control to the routine specified
- in the VINIT macro and reinitialize the buffer.
- -
- <symbol> VOUT varea<,loc,len><,DEBLANK=YES><,WGET=YES>
- <,OFFSET=value>
- or
- <symbol> VOUT varea,string<,string-len><,DEBLANK=YES>
- -
- varea addrla (passed in VRE)
- 0 The address of the varea whose buffer is to be
- output.
- - loc addrla (passed in VR1)
- 0 Location of a string to be VSEGed.
- - len valuela (passed in VR0)
- 0 Length of the string to be VSEGed.
- - string string
- 0 Literal string to be VSEGed.
- - string-len cexpr8
- 0 Length of literal string.
- - DEBLANK=YES
- 0 The string is to be deblanked before being VSEGed.
- - WGET=YES conditional form allowed
- 0 loc is the address of a locator for the string.
- 1 144
- -
- OFFSET=value valuela (passed in VRF)
- 0 Offset from the start of the string.
- 1 145
- -
- VSEG - Put a segment into the buffer
- -
- 0The VSEG macro will but a segment into the end of the
- current buffer of the specified varea.
- -
- <symbol> VSEG varea,loc,len<,DEBLANK=YES><,WGET=YES>
- <,OFFSET=value>
- or
- <symbol> VSEG varea,string<,string-len><,DEBLANK=YES>
- -
- varea addrla (passed in VRE)
- 0 The address of the varea to be used.
- - loc addrla (passed in VR1)
- 0 The address of the string to be moved.
- - len valuela (passed in VR0)
- 0 The length of the string to be moved.
- - string string
- 0 A literal string to be moved into the buffer.
- - string-len cexpr8
- 0 The length of the literal string.
- - DEBLANK=YES
- 0 The string is to be deblanked before being VSEGed.
- - WGET=YES conditional form allowed
- 0 loc is the address of a locator for the string.
- 1 146
- -
- OFFSET=value valuela (passed in VRF)
- 0 Offset from the start of the string.
- 1 147
- -
- VTELL - Find length and location in buffer
- -
- 0The VTELL macro will return the starting address of the buffer
- and the number of bytes which have been VSEGed into the
- buffer.
- -
- <symbol> VTELL varea
- -
- varea relexpri or (preg)
- 0 The address of the varea to be used.
- -
- RETURNS:
- 0 VR1 = the starting address of the buffer
- 0 VR0 = the number of bytes used in the buffer
- 1 148
- -
- VTEST - Test remaining length
- -
- 0The VTEST macro will set the condition code depending on
- whether or not enough bytes are left in the buffer to
- accommodate the specified length.
- -
- <symbol> VTEST varea,len
- -
- varea relexpri or (preg)
- 0 The address of the varea to be tested.
- - len valuela
- 0 The length to be tested.
- -
- RETURNS:
- 0 condition code = L insufficient space
- E exactly enough space
- H more than enough space
- 0 RTNR = number of bytes remaining in the buffer less len
- 1 149
- -
- Extended Fixed Binary Facility
- -
- 0The following macro provide extended fixed binary
- operations.
- -
- LOAD, STORE, ADD, SUB, and CMP
- -
- <symbol> opcdx reg,relexpri<,JUNK=OK>
- -
- opcd LOAD, STORE, ADD, SUB, or CMP
- - x B One byte operation
- H Normal halfword operation
- LH Logical halfword operations
- P Three byte pointer operations
- F Normal fullword operations
- LF Logical fullword operations
- - JUNK=OK used only with LOAD
- 0 Specifies that for LOADB, LOADLH, and LOADP, it is
- not necessary to clear the high order bytes in the
- register. Otherwise, the high order bytes are
- padded with zeros (0) to create a fullword when
- loading the register.
- -
- NOTE:
- 0 1. Operands need not be aligned.
- 0 2. For LOAD the register to be loaded must not be part
- of the operand location relexpri unless JUNK=OK is
- specified. For example, the following is illegal:
- 0 LOADB VR1,0(VR1)
- 0 3. When code is being generated for a 370, the 370
- instruction set will be used where possible.
- 1 150
- -
- Extended Length Facilities
- -
- 0These macros generate inline code to provided extended
- length facilities. These macros provide an optional
- N=count operand to allow the writer to specify the exact
- number of instructions to be generated. If N=count is not
- present, and the length operand is an unsigned integer or a
- SETA symbol, then as many instructions as are required for
- the specified length will be generated. If N=count is not
- present and the length operand is not an unsigned integer or
- SETA symbol, then one instruction is generated.
- -
- MCLC, MMVC, MNC, MOC, and MXC
- -
- <symbol> opcd oper1,oper2,length<,N=count><,ZERO=NULL>
- -
- opcd MCLC, MMVC, MNC, MOC, or MXC
- - oper1 relexpri or (preg)
- 0 The address of the 1st operand.
- - oper2 relexpri or (preg)
- 0 The address of the 2nd operand.
- - length
- 0 The number of bytes affected.
- - N=count unsigned integer or SETA symbol
- 0 The number of instructions to be generated.
- 0 ZERO=NULL
- 0 Specifies that no instructions are to be generated if
- len is zero. Normally a single instruction would be
- generated.
- 1 151
- -
- MFC - Fill a field
- -
- 0The MFC macro will fill a field with the specified charater.
- -
- <symbol> MFC loc,len<,FILL=char><,FILADDR=addr><,N=count><,ZERO=NULL>
- -
- loc relexpri or (preg)
- 0 The address of the field to be filled.
- - len
- 0 The length of the field to be filled.
- - FILL=char cexpr8
- 0 The character to fill the field with. Default is
- blank (C' ')
- - FILADDR=addr relexpri
- 0 Address of the fill character to be used. Mutually
- exclusive with FILL.
- - N=count unsigned integer or SETA symbol
- 0 The number of instructions to be generated.
- 0 ZERO=NULL
- 0 Specifies that no instructions are to be generated
- if len is zero.
- 1 152
- -
- MTC - Test a field
- -
- 0MTC tests a field for all zero (or other specified value)
- bytes.
- -
- <symbol> MTC loc,len<,FILL=char><,FILADDR=addr><,N=count><,ZERO=NULL>
- -
- loc relexpri or (preg)
- 0 Address of field to be tested.
- - len
- 0 Length of field.
- - FILL=char cexpr8
- 0 The character to be tested for. Default is 0.
- - FILADDR=addr relexpri
- 0 Address of the character to be tested for. Mutually
- exclusive with FILL.
- - N=count unsigned integer or SETA symbol
- 0 Number of instructions to be generated.
- 0 ZERO=NULL
- 0 Specifies that no test is to be performed if len
- is zero. The condition code will be set to zero in
- that case.
- -
- NOTE:
- 0 If FILL is not specified, OC instructions are
- generated to test the field for zeros. If FILL is
- specified, CLC instructions are generated, even if
- FILL=0 is specified.
- 1 153
- -
- MTR - Translate a field
- -
- 0MTR translates a field using a specified translate table.
- -
- <symbol> MTR loc,table,len<,N=count><,ZERO=NULL>
- -
- loc relexpri or (preg)
- 0 Location of field to be translated.
- - table relexpri or (preg)
- 0 Location of translate table.
- - len
- 0 Length of field.
- - N=count unsigned integer or SETA symbol
- 0 Number of TR instructions to be generated.
- 0 ZERO=NULL
- 0 Specifies that no instructions are to be generated if
- len is zero.
- 1 154
- -
- MTRT - Translate and test a field
- -
- 0MTRT performs a translate-and-test on a field.
- -
- <symbol> MTRT loc,table,len<,N=count><,ZERO=NULL>
- -
- loc relexpri or (preg)
- 0 Location of field.
- - table relexpri or (preg)
- 0 Location of translate-and-test table.
- - len
- 0 Length of field.
- - N=count unsigned integer or SETA symbol
- 0 Number of instructions to be generated.
- 0 ZERO=NULL
- 0 Specifies that no translate and test is to be
- performed if len is zero. The condition code is
- set to zero in that case.
- 1 155
- -
- MZC - Clear a field
- -
- 0The MZC macro will clear a field to all X'00's.
- -
- <symbol> MZC loc,len<,N=count><,ZERO=NULL>
- -
- loc relexpri or (preg)
- 0 The address of the field to be zeroed.
- - len
- 0 The length of the field to be zeroed.
- - N=count unsigned integer or SETA symbol.
- 0 The number of instructions to be generated.
- 0 ZERO=NULL
- 0 Specifies that no instructions are to be generated
- if len is zero.
- 1 156
- -
- 370 Simulation Instructions
- -
- 0The following group of macros will generate (if for 370) or
- simulate the 370 long form instructions.
- -
- MCLCL, MMVCL, MNCL, MOCL, and MXCL
- -
- <symbol> opcd reg1,loc1,len1,reg2,loc2<,len2><,FILL=char>
- <,FILADDR=byte><,INLINE=YES><,N=count>
- -
- opcd MCLCL, MMVCL, MNCL, MOCL, or MXCL
- - reg1 even reg of even-odd register pair
- 0 Work register.
- - loc1 addrla (passed in reg1)
- 0 The address of the 1st operand.
- - len1 valuela (passed in reg1+1)
- 0 The length of the first operand.
- - reg2 even reg of even-odd register pair
- 0 Work register.
- - loc2 addrla (passed in reg2)
- 0 The address of the second operand.
- - len2 valuela (passed in reg2+1)
- 0 The length of the 2nd operand. If omitted, len1 is
- used and more efficient code may be generated.
- 1 157
- -
- FILL=char cexpr8
- 0 The character to pad the shorter string with if len1
- and len2 are not equal. The default is X'00',
- except for MNCL which is X'FF'.
- - FILADDR=byte relexpri
- 0 The address of the fill character. May not be used
- if FILL is used.
- - INLINE=YES
- 0 Requests that the code be generated as an inline
- sequence of instructions, rather than in a loop if
- code is being generated for a 360 and len2 is
- omitted. The operands must fulfill the requirements
- for the Mxxx macros.
- - N=count unsigned integer or SETA symbol.
- 0 The number of instructions to generate if
- INLINE=YES.
- 1 158
- -
- MFCL - Clear field loop
- -
- 0<symbol> MFCL reg1,loc,len,reg2<,FILL=char><,FILADDR=byte>
- <,INLINE=YES><,N=count>
- -
- reg1 even reg of even-odd register pair
- 0 Work register.
- - loc addrla (passed in reg1)
- 0 The address of the field to be filled.
- - len valuela (passed in reg1+1)
- 0 The length of the field to be filled.
- - reg2 even reg of even-odd register pair
- 0 Work register.
- - FILL=char cexpr8
- 0 The character with which to fill the field. Default
- is blank (C' ').
- - FILADDR=byte relexpri
- 0 The address of the fill character. May not be used
- if FILL is used.
- - INLINE=YES
- 0 Requests that the code be generated as an inline
- sequence of instructions rather than as a loop if
- code is being generated for a 360. The operands
- must fulfill the requirements for the MFC macro.
- - N=count unsigned integer or SETA symbol
- 0 The number of instructions to generate if
- INLINE=YES.
- 1 159
- -
- MTCL - Test field loop
- -
- 0<symbol> MTCL reg1,loc,len,reg2<,FILL=char><,FILADDR=byte>
- <,INLINE=YES><,N=count>
- -
- reg1 even reg of even-odd pair
- 0 Work registers.
- - loc addrla (passed in reg1)
- 0 Location of field to be tested.
- - len valuela (passed in reg1+1)
- 0 Length of field.
- - reg2 even reg of even-odd pair
- 0 Work registers.
- - FILL=char cexpr8
- 0 Character to be tested for. Default is zero.
- - FILADDR=byte relexpri
- 0 Address of the character to be tested for. May not be
- used if FILL is used.
- - INLINE=YES
- 0 Requests that the code be generated as an inline
- sequence of instructions rather than as a loop if
- code is being generated for a 360. The operands
- must fulfill the requirements for the MFC macro.
- - N=count
- 0 Number of instructions to be generated for
- INLINE=YES.
- 1 160
- -
- MTRL - Translate field loop
- -
- 0<symbol> MTRL reg1,loc,table,reg2,len<,INLINE=YES<,N=count>>
- -
- reg1 preg
- 0 Work register.
- - loc addrla (passed in reg1)
- 0 Location of field to be translated.
- - table relexpri
- 0 Location of translate table.
- - reg2 preg
- 0 Work register.
- - len valuela (passed in reg2)
- 0 Length of field.
- - INLINE=YES
- 0 Generate an inline sequence of TR instructions. The
- operands must fulfill the requirements for the MTR
- macro.
- - N=count
- 0 Number of instructions for INLINE=YES.
- 1 161
- -
- MTRTL - Translate and test loop
- -
- 0<symbol> MTRTL reg1,loc,table,reg2,len<,INLINE=YES<,N=count>>
- -
- reg1 preg
- 0 Work register.
- - loc addrla (passed in reg1)
- 0 Location of field to be translated.
- - table relexpri
- 0 Location of translate table.
- - reg2 preg
- 0 Work register.
- - len valuela (passed in reg2)
- 0 Length of field.
- - INLINE=YES
- 0 Generate an inline sequence of TR instructions. The
- operands must fulfill the requirements for the TRT
- macro.
- - N=count
- 0 Number of instructions for INLINE=YES.
- 1 162
- -
- MZCL - Zero field loop
- -
- 0<symbol> MZCL reg1,loc,len,reg2<,INLINE=YES><,N=count>
- -
- reg1 even reg of even-odd register pair
- 0 Work register.
- - loc addrla
- 0 The address of the field to be cleared to X'00's.
- - len valuela
- 0 The length of the field to be cleared.
- - reg2 even reg of even-odd register pair
- 0 Work register.
- - INLINE=YES
- 0 Requests that the code be generated as an inline
- sequence of instructions, rather than as a loop if
- code is being generated for a 360. The operands
- must fulfill the requirements for the MFC macro.
- - N=count unsigned integer or SETA symbol
- 0 The number of instructions to generate if
- INLINE=YES.
- 1 163
- -
- Flag Setting and Testing Macros
- -
- DF - Define flags
- -
- 0DF is used to define one or more flag bits and optionally
- assign initial values.
- -
- <symbol> DF flag-name,...<INIT=(flag-name,...)>
- -
- flag-name symbol
- 0 The name of the flag to be defined. Any number of
- flags may be specified. If more than 8 are
- specified, more than 1 byte will be reserved.
- - INIT=(flag-name,...) list of symbols
- 0 Specifies flags which are to be initially 1 (on).
- 1 164
- -
- SF - Set flags
- -
- 0SF is used to turn on one or more flags defined with DF.
- -
- <symbol> SF flag-name,...
- -
- flag-name symbol
- 0 The name of a flag to be turned on (set to 1). Up
- to 8 flags may be specified; all must reside in the
- same byte.
- 1 165
- -
- TF - Test Flags
- -
- 0TF is used to test one or more flags defined with DF.
- -
- <symbol> TF flag-name,...
- -
- flag-name symbol
- 0 The name of a flag to be tested. Up to 8 flags may
- be specified; all must reside in the same byte.
- -
- RETURNS:
- 0 CC = Z all tested flags off
- O all tested flags on
- M some on, some off
- 1 166
- -
- ZF - Zero flags
- -
- 0ZF is used to turn off one or more flags defined with DF.
- -
- <symbol> ZF flag-name,...
- -
- flag-name symbol
- 0 The name of a flag to be cleared. Up to 8 flags may
- be specified; all must reside in the same byte.
- 1 167
- -
- Multiprocessor Instructions
- -
- MPNI - Multiprocessor and immediate
- -
- 0MPNI performs a synchronized NI instruction.
- -<symbol> MPNI addr,mask,REGS=(r1,r2,r3)<,BASE=base-address>
- -
- addr relexpri
- 0 Address of the byte to be modified.
- - mask cexpr8
- 0 The mask to be used.
- - REGS=(r1,r2,r3) preg,preg,preg
- - BASE=base-address relexpri
- 0 The address of a fullword located no more than 4076
- bytes before the byte. More efficient code is
- generated if this option is specified.
- 1 168
- -
- MPOI - Multiprocessor or immediate
- -
- 0MPOI performs a synchronized OI instruction.
- -<symbol> MPOI addr,mask,REGS=(r1,r2,r3)<,BASE=base-address>
- -
- addr relexpri
- 0 Address of the byte to be modified.
- - mask cexpr8
- 0 The mask to be used.
- - REGS=(f1,f2,f3) preg,preg,preg
- - BASE=base-address relexpri
- 0 The address of a fullword located no more than 4076
- bytes before the byte. More efficient code is
- generated if this option is specified.
- 1 169
- -
- MPXI - Multiprocessor or immediate
- -
- 0MPXI performs a synchronized XI instruction.
- -<symbol> MPXI addr,mask,REGS=(r1,r2,r3)<,BASE=base-address>
- -
- addr relexpri
- 0 Address of the byte to be modified.
- - mask cexpr8
- 0 The mask to be used.
- - REGS=(r1,r2,r3) preg,preg,preg
- - BASE=base-address relexpri
- 0 The address of a fullword located no more than 4076
- bytes before the byte. More efficient code is
- generated if this option is specified.
- 1 170
- -
- MPZI - Multiprocessor or immediate
- -
- 0MPZI performs a synchronized ZI instruction.
- -<symbol> MPZI addr,mask,REGS=(r1,r2,r3)<,BASE=base-address>
- -
- addr relexpri
- 0 Address of the byte to be modified.
- - mask cexpr8
- 0 The mask to be used.
- - REGS=(r1,r2,r3) preg,preg,preg
- - BASE=base-address relexpri
- 0 The address of a fullword located no more than 4076
- bytes before the byte. More efficient code is
- generated if this option is specified.
- 1 171
- -
- ALP Readability Macros
- -
- The following macros are provided in order to enhance the
- readability of ALP programs.
- 0 r is a register (reg)
- a is a storage address (relexpri)
- c is a constant
- -Macro Name Code Generated
- 0AI r,c Add Immediate LA r,c(,r)
- 0AI VR0,c Add Immediate AL VR0,=A(c)
- -CI r,c Compare Immediate C r,=A(c)
- 0CIL r,c Compare Immediate CL r,=A(c)
- Logical
- 0DI r,c Divide Immediate D r,=A(c)
- 0LI r,c Load Immediate LA r,c
- -LI VR0,c Load Immediate L VR0,=A(c)
- 0LQS r1,r2,'str' Load Quoted String LA r1,=C'str'
- LA r2,length
- 0LT r,a Load and Test L r,a
- LTR r,r
- 0MI r,c Multiply Immediate MH r,=AL2(c)
- 0RM r Register Minus LTR r,r
- 0RMP r Register Minus or Plus LTR r,r
- 0RMZ r Register Minus or Zero LTR r,r
- 0RNM r Register Not Minus LTR r,r
- 0RNMP r Register Not Minus LTR r,r
- or Plus
- 0RNMZ r Register Not Minus LTR r,r
- or Zero
- 0RNP r Register Not Plus LTR r,r
- 1 172
- -
- RNZ r Register Not Zero LTR r,r
- 0RNZP r Register Not Zero LTR r,r
- or Plus
- 0RP r Register Plus LTR r,r
- 0RZ r Register Zero LTR r,r
- 0RZP r Register Zero or Plus LTR r,r
- 0SI r,1 Subtract Immediate BCTR r,0
- 0SI r,2 Subtract Immediate BCTR r,0
- BCTR r,0
- 0SI r,c Subtract Immediate SL r,=A(c)
- 0Z r,a Zero SR r,r
- ST r,a
- 0Z ,a Zero XC a(4),a
- 0ZB r,a Zero Byte SR r,r
- STC r,a
- 0ZB ,a Zero Byte MVI a,0
- 0ZH r,a Zero Halfword SR r,r
- STH r,a
- 0ZH ,a Zero Halfword XC a(2),a
- 0ZHB a Zero High Byte MVI a,0
- 0ZHBR r Zero High Byte Register LA r,0(,r)
- 0ZI a,c Zero Immediate NI a,255-(c)
- 0ZR r Zero Register SR r,r
- 1 173
- -
- EXI and EXORG - Execute immediate
- -
- 0EXI permits the instruction to be executed by an EX
- instruction to be coded at the same place in the source
- program.
- -
- <symbol> EXI ex-reg,opcode,operand1,operand2,<DECR=YES>,
- <INCR=YES>
- -
- ex-reg reg
- 0 The register to be used as the first operand of the
- EX instruction.
- - opcode valid assembler opcode
- 0 Operation code of the instruction to be executed.
- - operand1
- 0 The first operand of the instruction to be executed.
- - operand2
- 0 The second operand of the instruction to be
- executed.
- - DECR=YES
- 0 Specifies that the register is to be decremented
- by one before the EX instruction.
- 0 INCR=YES
- 0 Specifies that the register is to be incremented
- by one after the EX instruction. The condition
- code is not affected.
- 1 174
- -
- NOTES:
- 0 1. The opcode to be executed may not be a macro unless
- it is one of the following: MCLC, MMVC, MNC, MOC,
- MTC, MTR, MTRT, MXC, MZC. When one of these is
- used, N=1 and a length of zero are forced.
- 0 2. An EXORG must be included within addressable range
- in order to assemble the instructions to be
- executed.
- 0 3. If an instruction occurs more than once, EXORG will
- assemble only one copy.
- 1 175
- -
- Extended Branch Mnemonics
- -
- The following extended branch mnemonics are provided:
- - Extended Corresponding
- Mnemonic Assembler Mnemonic
- 0 BLR BCR 4
- BER BCR 8
- BHR BCR 2
- BNLR BCR 11
- BNER BCR 7
- BNHR BCR 13
- 0 BMR BCR 4
- BZR BCR 8
- BPR BCR 2
- BNMR BCR 11
- BNZR BCR 7
- BNPR BCR 13
- 0 BOR BCR 1
- BNOR BCR 14
- 0 BLE BNH
- BEH BNL
- BLH BNE
- BNLE BH
- BNEH BL
- BNLH BE
- 0 BLER BNHR
- BEHR BNLR
- BLHR BNER
- BNLER BHR
- BNEHR BLR
- BNLHR BER
- 0 BMZ BNP
- BZP BNM
- BMP BNZ
- BNMZ BP
- BNZP BM
- BNMP BZ
- 0 BMZR BNPR
- BZPR BNMR
- BMPR BNZR
- BNMZR BPR
- BNZPR BMR
- BNMPR BZR
- 1 176
- -
- ED Routine Macros
- -
- EDABEND - Prepare for ABEND
- -
- 0The EDABEND macro sets up the environment necessary for the
- ED routines to issue ABEND messages.
- -
- <symbol> EDABEND
- -Note:
- 0 If the contents of register VRF is zero, then it
- is assumed that the dynamic work area does not exist
- and space for it is obtained.
- 1 177
- -
- EDENTER - Generate entry linkage
- -
- 0The EDENTER macro will generate entry linkage code for the
- ED routines.
- -
- <symbol> EDENTER <ENTRY=COMMON><,INITRTN=YES><,MESSAGE=YES>
- - ENTRY=COMMON
- 0 Specifies that the PL/I and the non-PL/I entry
- points are the same (i.e., they have exactly the
- same arguments).
- - INITRTN=YES
- 0 Specifies that space for the dynamic work area has
- not yet been obtained.
- 0 MESSAGE=YES
- 0 Suppresses the storing of the name of the routine
- called in the dynamic work area. Also suppresses
- the resetting of the previous routines return code.
- -NOTE:
- 0 Unless INITRTN=YES is specified, validity checks are made
- to verify that the control word argument (ACW) points to the
- dynamic work area. If any of the checks fail, register VRF is
- set to zero and control is transferred to the statement with a
- label of ABENDMSG.
- 1 178
- -
- EDEXIT - Generate exit linkage
- -
- 0The EDEXIT macro will generate exit linkage code for the ED
- routines.
- -
- <symbol> EDEXIT <TERMRTN=YES><,MESSAGE=YES>
- - TERMRTN=YES
- 0 Specifies that space for the dynamic work area has
- been freed.
- 0 MESSAGE=YES
- 0 Suppresses the storing of the return code in the
- dynamic work area.
- -NOTES:
- 01. Unless MESSAGE=YES is coded, the value in register VRF is
- stored in the return code argument (ARETURN).
- 02. Unless TERMRTN=YES is specified, a check is made for stack
- overflow by looking for a unique character string at the
- end of the dynamic work area. If this test fails, register
- VRF is set to 4 and control is transferred to the statement
- with a label of ABEND MSG.
- 1 179
- -
- EDGAS - Get address of string
- -
- The EDGAS macro may be used to get the address of a character
- string passed to the ED routines.
- -<symbol> EDGAS addr,aloc,WORK=work-reg
- - addr preg
- 0 The address of the character string is returned
- in this register.
- 0 aloc addrl
- 0 Symbol corresponding to character string variable
- in DSECT for argument list.
- - work-reg reg
- 0 Work register.
- 1 180
- -
- EDGCLS - Get current length of string
- -
- The EDGCLS macro may be used to get the current length of a
- character string passed to the ED routines.
- -<symbol> EDGCLS curlen,aloc,<alength>,WORK=work-reg<,DEFLEN=default>
- - curlen preg
- 0 The current length of the character string is
- returned in this register.
- 0 aloc addrl
- 0 Symbol corresponding to character string variable
- in DSECT for argument list.
- - alength addrl
- 0 Symbol corresponding to length variable in
- DSECT for argument list.
- 0 work-reg reg
- 0 Work register.
- 0 default constant
- 0 The default length which will be used for
- non-PL/I routines when the "alength"
- parameter is omitted.
- -NOTES:
- 0 1. The "alength" and "DEFLEN=" parameters are
- mutually exclusive.
- 1 181
- -
- EDGMLS - Get maximum length of string
- -
- The EDGMLS macro may be used to get the maximum length of a
- character string passed to the ED routines.
- -<symbol> EDGMLS maxlen,aloc,alength,WORK=work-reg
- - maxlen preg
- 0 The maximum length of the character string is
- returned in this register.
- 0 aloc addrl
- 0 Symbol corresponding to character string variable
- in DSECT for argument list.
- - alength addrl
- 0 Symbol corresponding to length variable in DSECT
- for argument list.
- 0 work-reg reg
- 0 Work register.
- 1 182
- -
- EDSCLS - Set current length of string
- -
- The EDSCLS macro may be used to set the current length of
- a varying length PL/I character string variable passed to
- the ED routines.
- -<symbol> EDSCLS curlen,aloc,WORK1=work-reg1,WORK2=work-reg2
- <,PLIV=YES>
- -
- curlen reg
- 0 This register must contain the value to be
- stored in the current length field.
- - aloc addrl
- 0 Symbol corresponding to character string
- variable in DSECT for argument list.
- 0 work-reg1 reg
- 0 Work register.
- - work-reg2 preg
- 0 Work register.
- - PLIV=YES
- 0 Specifies that program has already determined that
- the string is a varying length PL/I character string
- and addressability has been established for the
- locator/descriptor. If PLIV=YES is specified, then
- "WORK1=" may be omitted.
- 1 183
- -
- EDSETUP - Generate required DSECTS
- -
- 0The EDSETUP macro generates DSECTS for control blocks which
- are required for assembly of an ED routine.
- -
- symbol EDSETUP <CBS=option><ctl-block-name=ctl-block-opt>
- <,REGS=regs-opt><,SCABBRS=YES><,SETS=NO>
- <,PLILD=YES>
- - symbol 1-8 characters
- 0 CSECT name for the routine; this is required.
- - CBS=option NO or ALL
- 0 Requests suppression of all control blocks (NO) or
- inclusion of all control blocks (ALL).
- - ctl-block-name 1-4 characters
- 0 One of the WYLBUR control blocks, e.g. CV, CP, RTB,
- RTCB, PCB, DFCB; or one of the OS control blocks
- supported by the macro, e.g. UCB, CVT.
- - ctl-block-opt YES, NO, CV or CP
- 0 YES - generate the DSECT.
- NO - do not generate the DSECT.
- CV - include the definition of the control block as
- a continuation of the CV DSECT (JCB and CP
- only).
- CP - include the definition of the control block in
- the appropriate place in the CP (SCT and RTB
- only).
- - REGS=NO
- 0 Suppresses generation of the standard register
- definitions.
- 1 184
- -
- SCABBRS=YES
- 0 Specifies that a list of scanner abbreviations
- is to be generated.
- - SETS=NO
- 0 Suppresses set statements affecting GLOBAL
- variables.
- - PLILD=YES
- 0 Specifies that the DSECT for the PL/I string
- locator/descriptor is to be generated.
- -NOTES:
- 0 1. Before giving the EDSETUP macro, the user should
- include copy statements for the following numbers
- from SYSLIB: CPARMGBL, MPARMGBL and WPARMGBL.
- 0 2. The standard form for an ED routine is:
- 0 module TITLE 'module function'
- (macro definitions)
- COPY CPARMGBL
- COPY MPARMGBL
- COPY WPARMGBL
- 0 module EDSETUP ...
- (additional register definitions, etc.)
- EJECT
- (code)
- END
- 0 3. The default control block options are:
- 0 TXL=YES
-